mirror of
https://github.com/opennetworkinglab/onos.git
synced 2026-05-05 04:06:49 +02:00
Remove deprecated "sid" parameter in UI events.
Change-Id: Ib39fe563109068e7a97df809e9dd1f9f7506fbc6
This commit is contained in:
parent
73ae7d7458
commit
8a0429ad47
@ -50,9 +50,9 @@ public class DriverViewMessageHandler extends UiMessageHandler {
|
||||
private static final String MATRIX = "matrix";
|
||||
|
||||
private static final Comparator<? super Class<? extends Behaviour>> BEHAVIOUR_BY_NAME =
|
||||
(o1, o2) -> o1.getSimpleName().compareTo(o2.getSimpleName());
|
||||
Comparator.comparing(Class::getSimpleName);
|
||||
private static final Comparator<? super Driver> DRIVER_BY_NAME =
|
||||
(o1, o2) -> o1.name().compareTo(o2.name());
|
||||
Comparator.comparing(Driver::name);
|
||||
|
||||
|
||||
@Override
|
||||
@ -72,7 +72,7 @@ public class DriverViewMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
DriverService driverService = get(DriverService.class);
|
||||
|
||||
List<Driver> drivers = new ArrayList<>(driverService.getDrivers());
|
||||
@ -82,7 +82,7 @@ public class DriverViewMessageHandler extends UiMessageHandler {
|
||||
List<Class<? extends Behaviour>> behaviours = orderBehaviours(drivers);
|
||||
|
||||
// Produce a JSON structure and send it
|
||||
sendMessage(DRIVER_DATA_RESPONSE, 0, driversJson(drivers, behaviours));
|
||||
sendMessage(DRIVER_DATA_RESPONSE, driversJson(drivers, behaviours));
|
||||
}
|
||||
|
||||
private List<Driver> orderDrivers(List<Driver> drivers) {
|
||||
|
||||
@ -18,20 +18,22 @@ package org.onosproject.faultmanagement.alarms.gui;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import com.google.common.base.Strings;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import org.joda.time.DateTime;
|
||||
import org.onosproject.incubator.net.faultmanagement.alarm.Alarm;
|
||||
import org.onosproject.net.DeviceId;
|
||||
import org.onosproject.ui.RequestHandler;
|
||||
import org.onosproject.ui.UiMessageHandler;
|
||||
import org.onosproject.ui.table.TableModel;
|
||||
import org.onosproject.ui.table.TableRequestHandler;
|
||||
import org.onosproject.ui.table.cell.TimeFormatter;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Set;
|
||||
import org.joda.time.DateTime;
|
||||
import org.onosproject.incubator.net.faultmanagement.alarm.Alarm;
|
||||
import org.onosproject.incubator.net.faultmanagement.alarm.AlarmId;
|
||||
import org.onosproject.net.DeviceId;
|
||||
import org.onosproject.ui.table.cell.TimeFormatter;
|
||||
|
||||
import static java.lang.Long.parseLong;
|
||||
import static org.onosproject.incubator.net.faultmanagement.alarm.AlarmId.alarmId;
|
||||
|
||||
/**
|
||||
* Skeletal ONOS UI Table-View message handler.
|
||||
@ -58,8 +60,12 @@ public class AlarmTableMessageHandler extends UiMessageHandler {
|
||||
|
||||
// TODO No need to show id column in ONOS-GUI
|
||||
|
||||
// TODO Replace SEVERITY column by color-coding of row depending on severity ie. red=critical, green=cleared etc
|
||||
private static final String[] COLUMN_IDS = {ID, DEVICE_ID_STR, DESCRIPTION, SOURCE, TIME_RAISED, SEVERITY};
|
||||
// TODO Replace SEVERITY column by color-coding of row depending on severity
|
||||
// e.g. red=critical, green=cleared etc
|
||||
|
||||
private static final String[] COLUMN_IDS = {
|
||||
ID, DEVICE_ID_STR, DESCRIPTION, SOURCE, TIME_RAISED, SEVERITY
|
||||
};
|
||||
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
|
||||
@ -82,7 +88,6 @@ public class AlarmTableMessageHandler extends UiMessageHandler {
|
||||
|
||||
@Override
|
||||
protected String defaultColumnId() {
|
||||
// if necessary, override defaultColumnId() -- if it isn't "id"
|
||||
return ID;
|
||||
}
|
||||
|
||||
@ -98,7 +103,6 @@ public class AlarmTableMessageHandler extends UiMessageHandler {
|
||||
|
||||
@Override
|
||||
protected TableModel createTableModel() {
|
||||
// if required, override createTableModel() to set column formatters / comparators
|
||||
TableModel tm = super.createTableModel();
|
||||
tm.setFormatter(TIME_RAISED, new TimeFormatter());
|
||||
return tm;
|
||||
@ -106,21 +110,18 @@ public class AlarmTableMessageHandler extends UiMessageHandler {
|
||||
|
||||
@Override
|
||||
protected void populateTable(TableModel tm, ObjectNode payload) {
|
||||
log.debug(" populateTable tm={} payload ={}", tm, payload);
|
||||
log.debug(" populateTable: tm = {}; payload = {}", tm, payload);
|
||||
String devId = string(payload, "devId");
|
||||
|
||||
Set<Alarm> alarms = Strings.isNullOrEmpty(devId) ?
|
||||
AlarmServiceUtil.lookUpAlarms() :
|
||||
AlarmServiceUtil.lookUpAlarms(DeviceId.deviceId(devId));
|
||||
|
||||
alarms.forEach((alarm) -> {
|
||||
populateRow(tm.addRow(), alarm);
|
||||
});
|
||||
|
||||
alarms.forEach((alarm) -> populateRow(tm.addRow(), alarm));
|
||||
}
|
||||
|
||||
private void populateRow(TableModel.Row row, Alarm alarm) {
|
||||
log.debug("populate table Row row={} item ={}", row, alarm);
|
||||
log.debug("populateRow: row = {} alarm = {}", row, alarm);
|
||||
|
||||
row.cell(ID, alarm.id().fingerprint())
|
||||
.cell(DEVICE_ID_STR, alarm.deviceId())
|
||||
@ -139,11 +140,11 @@ public class AlarmTableMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
log.debug("sid={}, payload ={}", sid, payload);
|
||||
public void process(ObjectNode payload) {
|
||||
log.debug("payload = {}", payload);
|
||||
|
||||
String id = string(payload, ID, "(none)");
|
||||
Alarm alarm = AlarmServiceUtil.lookupAlarm(AlarmId.alarmId(Long.parseLong(id)));
|
||||
Alarm alarm = AlarmServiceUtil.lookupAlarm(alarmId(parseLong(id)));
|
||||
ObjectNode rootNode = objectNode();
|
||||
ObjectNode data = objectNode();
|
||||
rootNode.set(DETAILS, data);
|
||||
@ -167,9 +168,9 @@ public class AlarmTableMessageHandler extends UiMessageHandler {
|
||||
data.put(TIME_CLEARED, formatTime(alarm.timeCleared()));
|
||||
data.put(SEVERITY, alarm.severity().toString());
|
||||
}
|
||||
log.debug("send ={}", rootNode);
|
||||
log.debug("send = {}", rootNode);
|
||||
|
||||
sendMessage(ALARM_TABLE_DETAIL_RESP, 0, rootNode);
|
||||
sendMessage(ALARM_TABLE_DETAIL_RESP, rootNode);
|
||||
}
|
||||
}
|
||||
|
||||
@ -179,6 +180,4 @@ public class AlarmTableMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
return new TimeFormatter().format(new DateTime(msSinceStartOfEpoch));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -19,6 +19,8 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import com.google.common.base.Strings;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import org.onlab.osgi.ServiceDirectory;
|
||||
import org.onosproject.incubator.net.faultmanagement.alarm.Alarm;
|
||||
import org.onosproject.incubator.net.faultmanagement.alarm.AlarmService;
|
||||
import org.onosproject.net.Device;
|
||||
import org.onosproject.net.DeviceId;
|
||||
import org.onosproject.net.Element;
|
||||
@ -38,8 +40,6 @@ import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Set;
|
||||
import org.onosproject.incubator.net.faultmanagement.alarm.Alarm;
|
||||
import org.onosproject.incubator.net.faultmanagement.alarm.AlarmService;
|
||||
|
||||
/**
|
||||
* FaultManagement UI Topology-Overlay message handler.
|
||||
@ -54,7 +54,6 @@ public class AlarmTopovMessageHandler extends UiMessageHandler {
|
||||
private static final String MODE = "mode";
|
||||
|
||||
private enum Mode {
|
||||
|
||||
IDLE, MOUSE
|
||||
}
|
||||
|
||||
@ -67,7 +66,7 @@ public class AlarmTopovMessageHandler extends UiMessageHandler {
|
||||
private Mode currentMode = Mode.IDLE;
|
||||
private Element elementOfNote;
|
||||
|
||||
// ===============-=-=-=-=-=-======================-=-=-=-=-=-=-================================
|
||||
// =======================================================================
|
||||
@Override
|
||||
public void init(UiConnection connection, ServiceDirectory directory) {
|
||||
super.init(connection, directory);
|
||||
@ -94,23 +93,21 @@ public class AlarmTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
String mode = string(payload, MODE);
|
||||
|
||||
log.debug("Start Display: mode [{}]", mode);
|
||||
|
||||
clearState();
|
||||
clearForMode();
|
||||
|
||||
switch (mode) {
|
||||
case "mouse":
|
||||
currentMode = Mode.MOUSE;
|
||||
|
||||
sendMouseData();
|
||||
break;
|
||||
|
||||
default:
|
||||
currentMode = Mode.IDLE;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -123,9 +120,10 @@ public class AlarmTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
String id = string(payload, ID);
|
||||
log.debug("Update Display: id [{}]", id);
|
||||
|
||||
if (!Strings.isNullOrEmpty(id)) {
|
||||
updateForMode(id);
|
||||
} else {
|
||||
@ -141,8 +139,9 @@ public class AlarmTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
log.debug("Stop Display");
|
||||
|
||||
clearState();
|
||||
clearForMode();
|
||||
}
|
||||
|
||||
@ -21,24 +21,26 @@ import com.fasterxml.jackson.databind.node.ArrayNode;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import org.onosproject.net.ConnectPoint;
|
||||
import org.onosproject.net.Device;
|
||||
import org.onosproject.net.Port;
|
||||
import org.onosproject.net.device.DeviceService;
|
||||
import org.onosproject.ui.RequestHandler;
|
||||
import org.onosproject.ui.UiMessageHandler;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.onosproject.net.Device;
|
||||
import org.onosproject.net.Port;
|
||||
import org.onosproject.net.device.DeviceService;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import static org.onosproject.net.ConnectPoint.deviceConnectPoint;
|
||||
|
||||
/**
|
||||
* ONOS UI Custom-View message handler.
|
||||
*
|
||||
* This class contains the request handlers that handle the response
|
||||
* to each event. In this particular implementation the second message
|
||||
* handler creates the patch and the first message handler loads the data
|
||||
* ONOS UI Custom-View message handler.
|
||||
* <p>
|
||||
* This class contains the request handlers that handle the response
|
||||
* to each event. In this particular implementation the second message
|
||||
* handler creates the patch and the first message handler loads the data.
|
||||
*/
|
||||
public class PatchPanelUiMessageHandler extends UiMessageHandler {
|
||||
|
||||
@ -48,60 +50,68 @@ public class PatchPanelUiMessageHandler extends UiMessageHandler {
|
||||
private static final String SAMPLE_CUSTOM_DATA_RESP2 = "sampleCustomDataResponse2";
|
||||
private static final String SAMPLE_CUSTOM_DATA_REQ3 = "sampleCustomDataRequest3";
|
||||
private static final String SAMPLE_CUSTOM_DATA_RESP3 = "sampleCustomDataResponse3";
|
||||
private String message = "";
|
||||
private String cpoints = "";
|
||||
|
||||
private static final String SLASH = "/";
|
||||
private static final String CPS = "cps";
|
||||
private static final String RESULT = "result";
|
||||
private static final String MESSAGE = "message";
|
||||
|
||||
private static final String EOL = String.format("%n");
|
||||
private static final String WITH = " with ";
|
||||
private static final String CPOINTS = "cpoints";
|
||||
|
||||
private List<ConnectPoint> previous = new ArrayList<>();
|
||||
private static ConnectPoint cp1;
|
||||
private static ConnectPoint cp2;
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
|
||||
@Override
|
||||
protected Collection<RequestHandler> createRequestHandlers() {
|
||||
return ImmutableSet.of(new DataRequestHandler(), new SecondDataRequestHandler(), new ThirdDataRequestHandler());
|
||||
return ImmutableSet.of(
|
||||
new DataRequestHandler(),
|
||||
new SecondDataRequestHandler(),
|
||||
new ThirdDataRequestHandler()
|
||||
);
|
||||
}
|
||||
|
||||
// handler for data requests/events
|
||||
private final class DataRequestHandler extends RequestHandler {
|
||||
|
||||
private DataRequestHandler() {
|
||||
super(SAMPLE_CUSTOM_DATA_REQ);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
DeviceService service = get(DeviceService.class);
|
||||
ObjectNode result = objectNode();
|
||||
ArrayNode cps = arrayNode();
|
||||
result.set("cps", cps);
|
||||
result.set(CPS, cps);
|
||||
|
||||
for (Device device : service.getDevices()) {
|
||||
cps.add(device.id().toString());
|
||||
for (Port port : service.getPorts(device.id())) {
|
||||
if (!port.number().isLogical()) {
|
||||
cps.add(port.number().toString());
|
||||
log.info(device.id().toString() + "/" + port.number());
|
||||
log.info(device.id() + SLASH + port.number());
|
||||
}
|
||||
}
|
||||
}
|
||||
sendMessage(SAMPLE_CUSTOM_DATA_RESP, 0, result);
|
||||
sendMessage(SAMPLE_CUSTOM_DATA_RESP, result);
|
||||
}
|
||||
}
|
||||
|
||||
private final class SecondDataRequestHandler extends RequestHandler {
|
||||
|
||||
private SecondDataRequestHandler() {
|
||||
super(SAMPLE_CUSTOM_DATA_REQ2);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
boolean done;
|
||||
String deviceId = payload.get("result").get(0).asText();
|
||||
cp1 = ConnectPoint.deviceConnectPoint(deviceId + "/" + payload.get("result").get(1).asText());
|
||||
cp2 = ConnectPoint.deviceConnectPoint(deviceId + "/" + payload.get("result").get(2).asText());
|
||||
PatchPanelService patchPanelService;
|
||||
patchPanelService = get(PatchPanelService.class);
|
||||
done = patchPanelService.addPatch(cp1, cp2);
|
||||
public void process(ObjectNode payload) {
|
||||
String deviceId = payload.get(RESULT).get(0).asText();
|
||||
ConnectPoint cp1 = deviceConnectPoint(deviceId + SLASH + payload.get(RESULT).get(1).asText());
|
||||
ConnectPoint cp2 = deviceConnectPoint(deviceId + SLASH + payload.get(RESULT).get(2).asText());
|
||||
PatchPanelService pps = get(PatchPanelService.class);
|
||||
|
||||
boolean done = pps.addPatch(cp1, cp2);
|
||||
String message;
|
||||
if (done) {
|
||||
message = "Patch has been created";
|
||||
previous.add(cp1);
|
||||
@ -112,28 +122,26 @@ public class PatchPanelUiMessageHandler extends UiMessageHandler {
|
||||
message = "Both ports can not be the same";
|
||||
}
|
||||
}
|
||||
payload.put("message", message);
|
||||
sendMessage(SAMPLE_CUSTOM_DATA_RESP2, sid, payload);
|
||||
payload.put(MESSAGE, message);
|
||||
sendMessage(SAMPLE_CUSTOM_DATA_RESP2, payload);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
private final class ThirdDataRequestHandler extends RequestHandler {
|
||||
private ThirdDataRequestHandler() {
|
||||
super(SAMPLE_CUSTOM_DATA_REQ3);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
cpoints = "";
|
||||
public void process(ObjectNode payload) {
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < previous.size(); i++) {
|
||||
if (i % 2 == 1) {
|
||||
cpoints += previous.get(i) + "\n";
|
||||
} else {
|
||||
cpoints += previous.get(i) + " with ";
|
||||
}
|
||||
sb.append(previous.get(i)).append(i % 2 == 0 ? WITH : EOL);
|
||||
}
|
||||
payload.put("cpoints", cpoints);
|
||||
sendMessage(SAMPLE_CUSTOM_DATA_RESP3, sid, payload);
|
||||
payload.put(CPOINTS, sb.toString());
|
||||
sendMessage(SAMPLE_CUSTOM_DATA_RESP3, payload);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -40,7 +40,6 @@ import org.onosproject.ui.topo.DeviceHighlight;
|
||||
import org.onosproject.ui.topo.Highlights;
|
||||
import org.onosproject.ui.topo.HostHighlight;
|
||||
import org.onosproject.ui.topo.NodeBadge;
|
||||
import org.onosproject.ui.topo.TopoJson;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@ -48,6 +47,8 @@ import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.onosproject.ui.topo.TopoJson.highlightsMessage;
|
||||
|
||||
/**
|
||||
* ONOS UI PathPainter Topology-Overlay message handler.
|
||||
*/
|
||||
@ -67,11 +68,11 @@ public class PathPainterTopovMessageHandler extends UiMessageHandler {
|
||||
private static final String TYPE = "type";
|
||||
private static final String SWITCH = "switch";
|
||||
private static final String ENDSTATION = "endstation";
|
||||
public static final String DST = "Dst";
|
||||
public static final String SRC = "Src";
|
||||
private static final String DST = "Dst";
|
||||
private static final String SRC = "Src";
|
||||
// Delay for showHighlights event processing on GUI client side to
|
||||
// account for addLink animation.
|
||||
public static final int DELAY_MS = 1100;
|
||||
private static final int DELAY_MS = 1100;
|
||||
|
||||
private final TopologyListener topologyListener = new InternalTopologyListener();
|
||||
|
||||
@ -97,7 +98,7 @@ public class PathPainterTopovMessageHandler extends UiMessageHandler {
|
||||
protected TopologyService topologyService;
|
||||
|
||||
|
||||
// ===============-=-=-=-=-=-======================-=-=-=-=-=-=-================================
|
||||
// ===============-=-=-=-=-=-======================-=-=-=-=-=-=-===========
|
||||
|
||||
|
||||
@Override
|
||||
@ -139,10 +140,10 @@ public class PathPainterTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
src = null;
|
||||
dst = null;
|
||||
sendMessage(TopoJson.highlightsMessage(new Highlights()));
|
||||
sendMessage(highlightsMessage(new Highlights()));
|
||||
}
|
||||
}
|
||||
|
||||
@ -153,17 +154,17 @@ public class PathPainterTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
String id = string(payload, ID);
|
||||
src = elementId(id);
|
||||
srcType = string(payload, TYPE);
|
||||
if (src.equals(dst)) {
|
||||
dst = null;
|
||||
}
|
||||
sendMessage(TopoJson.highlightsMessage(addBadge(new Highlights(),
|
||||
srcType,
|
||||
src.toString(),
|
||||
SRC)));
|
||||
|
||||
sendMessage(highlightsMessage(
|
||||
addBadge(new Highlights(), srcType, src.toString(), SRC))
|
||||
);
|
||||
findAndSendPaths(currentMode);
|
||||
}
|
||||
}
|
||||
@ -174,7 +175,7 @@ public class PathPainterTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
String id = string(payload, ID);
|
||||
dst = elementId(id);
|
||||
dstType = string(payload, TYPE);
|
||||
@ -182,10 +183,9 @@ public class PathPainterTopovMessageHandler extends UiMessageHandler {
|
||||
src = null;
|
||||
}
|
||||
|
||||
sendMessage(TopoJson.highlightsMessage(addBadge(new Highlights(),
|
||||
dstType,
|
||||
dst.toString(),
|
||||
DST)));
|
||||
sendMessage(highlightsMessage(
|
||||
addBadge(new Highlights(), dstType, dst.toString(), DST))
|
||||
);
|
||||
findAndSendPaths(currentMode);
|
||||
}
|
||||
}
|
||||
@ -196,7 +196,7 @@ public class PathPainterTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
ElementId temp = src;
|
||||
src = dst;
|
||||
dst = temp;
|
||||
@ -214,7 +214,7 @@ public class PathPainterTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
pathIndex = (pathIndex >= paths.size() - 1 ? 0 : pathIndex + 1);
|
||||
hilightAndSendPaths();
|
||||
}
|
||||
@ -226,7 +226,7 @@ public class PathPainterTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
pathIndex = (pathIndex <= 0 ? paths.size() - 1 : pathIndex - 1);
|
||||
hilightAndSendPaths();
|
||||
}
|
||||
@ -238,7 +238,7 @@ public class PathPainterTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
String mode = string(payload, MODE);
|
||||
switch (mode) {
|
||||
case "shortest":
|
||||
@ -287,7 +287,7 @@ public class PathPainterTopovMessageHandler extends UiMessageHandler {
|
||||
paths = ImmutableList.copyOf(pathService.getPaths(src, dst, linkData));
|
||||
allPathLinks = buildPaths(builder).build();
|
||||
} else {
|
||||
log.info("Unsupported MODE");
|
||||
log.warn("Unsupported MODE");
|
||||
}
|
||||
} else {
|
||||
paths = ImmutableList.of();
|
||||
@ -342,7 +342,7 @@ public class PathPainterTopovMessageHandler extends UiMessageHandler {
|
||||
if (dst != null) {
|
||||
highlights = addBadge(highlights, dstType, dst.toString(), DST);
|
||||
}
|
||||
sendMessage(TopoJson.highlightsMessage(highlights));
|
||||
sendMessage(highlightsMessage(highlights));
|
||||
}
|
||||
|
||||
private Highlights addBadge(Highlights highlights, String type, String elemId, String src) {
|
||||
|
||||
@ -16,19 +16,32 @@
|
||||
|
||||
package org.onosproject.pceweb;
|
||||
|
||||
import com.fasterxml.jackson.databind.node.ArrayNode;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
|
||||
import org.onlab.osgi.ServiceDirectory;
|
||||
import org.onlab.packet.IpAddress;
|
||||
import org.onlab.util.DataRateUnit;
|
||||
import org.onosproject.incubator.net.tunnel.IpTunnelEndPoint;
|
||||
import org.onosproject.incubator.net.tunnel.Tunnel;
|
||||
import org.onosproject.incubator.net.tunnel.TunnelEndPoint;
|
||||
import org.onosproject.incubator.net.tunnel.TunnelEvent;
|
||||
import org.onosproject.incubator.net.tunnel.TunnelId;
|
||||
import org.onosproject.incubator.net.tunnel.TunnelListener;
|
||||
import org.onosproject.incubator.net.tunnel.TunnelService;
|
||||
import org.onosproject.net.Device;
|
||||
import org.onosproject.net.DeviceId;
|
||||
import org.onosproject.net.ElementId;
|
||||
import org.onosproject.net.HostId;
|
||||
import org.onosproject.net.Link;
|
||||
import org.onosproject.net.Path;
|
||||
import org.onosproject.net.device.DeviceService;
|
||||
import org.onosproject.net.intent.Constraint;
|
||||
import org.onosproject.net.intent.constraint.BandwidthConstraint;
|
||||
import org.onosproject.net.topology.TopologyService;
|
||||
import org.onosproject.pce.pceservice.LspType;
|
||||
import org.onosproject.pce.pceservice.api.PceService;
|
||||
import org.onosproject.pce.pceservice.constraint.CostConstraint;
|
||||
import org.onosproject.ui.RequestHandler;
|
||||
import org.onosproject.ui.UiConnection;
|
||||
import org.onosproject.ui.UiMessageHandler;
|
||||
@ -37,34 +50,20 @@ import org.onosproject.ui.topo.Highlights;
|
||||
import org.onosproject.ui.topo.LinkHighlight;
|
||||
import org.onosproject.ui.topo.Mod;
|
||||
import org.onosproject.ui.topo.NodeBadge;
|
||||
import org.onosproject.ui.topo.TopoJson;
|
||||
import org.onosproject.ui.topo.TopoUtils;
|
||||
import org.onosproject.net.device.DeviceService;
|
||||
import org.onosproject.net.intent.Constraint;
|
||||
import org.onosproject.pce.pceservice.LspType;
|
||||
import org.onosproject.pce.pceservice.api.PceService;
|
||||
import org.onosproject.pce.pceservice.constraint.CostConstraint;
|
||||
import org.onosproject.net.intent.constraint.BandwidthConstraint;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.onosproject.incubator.net.tunnel.IpTunnelEndPoint;
|
||||
import org.onosproject.incubator.net.tunnel.Tunnel;
|
||||
import static org.onosproject.incubator.net.tunnel.Tunnel.State.ACTIVE;
|
||||
import org.onosproject.incubator.net.tunnel.TunnelEndPoint;
|
||||
import org.onosproject.incubator.net.tunnel.TunnelEvent;
|
||||
import org.onosproject.incubator.net.tunnel.TunnelId;
|
||||
import org.onosproject.incubator.net.tunnel.TunnelListener;
|
||||
import org.onosproject.incubator.net.tunnel.TunnelService;
|
||||
import static org.onosproject.ui.topo.LinkHighlight.Flavor.*;
|
||||
import static org.onosproject.incubator.net.tunnel.Tunnel.Type.MPLS;
|
||||
|
||||
import com.fasterxml.jackson.databind.node.ArrayNode;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.onosproject.incubator.net.tunnel.Tunnel.State.ACTIVE;
|
||||
import static org.onosproject.incubator.net.tunnel.Tunnel.Type.MPLS;
|
||||
import static org.onosproject.ui.topo.LinkHighlight.Flavor.PRIMARY_HIGHLIGHT;
|
||||
import static org.onosproject.ui.topo.TopoJson.highlightsMessage;
|
||||
|
||||
/**
|
||||
* ONOS UI PCE WEB Topology-Overlay message handler.
|
||||
*/
|
||||
@ -105,13 +104,17 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
private static final String STRING_NULL = "null";
|
||||
// Delay for showHighlights event processing on GUI client side to
|
||||
// account for addLink animation.
|
||||
private static final int DELAY_MS = 1100;
|
||||
private static final int DELAY_MS = 1_100;
|
||||
private static final double BANDWIDTH_KBPS = 1_000;
|
||||
private static final double BANDWIDTH_MBPS = 1_000_000;
|
||||
private static String[] linkColor = {"pCol1", "pCol2", "pCol3", "pCol4", "pCol5",
|
||||
"pCol6", "pCol7", "pCol8", "pCol9", "pCol10",
|
||||
"pCol11", "pCol12", "pCol13", "pCol14", "pCol15"};
|
||||
private static final int LINK_COLOR_MAX = 15;
|
||||
private static final String[] LINK_COLOR = {
|
||||
"pCol1", "pCol2", "pCol3", "pCol4", "pCol5",
|
||||
"pCol6", "pCol7", "pCol8", "pCol9", "pCol10",
|
||||
"pCol11", "pCol12", "pCol13", "pCol14", "pCol15"
|
||||
};
|
||||
|
||||
private static final int LINK_COLOR_MAX = LINK_COLOR.length;
|
||||
|
||||
private Set<Link> allPathLinks;
|
||||
private ElementId src, dst;
|
||||
private List<Path> paths = new LinkedList<>();
|
||||
@ -124,9 +127,9 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
protected TunnelService tunnelService;
|
||||
protected PceService pceService;
|
||||
protected DeviceService deviceService;
|
||||
|
||||
@Override
|
||||
public void init(UiConnection connection, ServiceDirectory directory) {
|
||||
|
||||
super.init(connection, directory);
|
||||
tunnelService = directory.get(TunnelService.class);
|
||||
pceService = directory.get(PceService.class);
|
||||
@ -155,6 +158,7 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
// Handler classes
|
||||
|
||||
/**
|
||||
* Handles the 'clear' event received from the client.
|
||||
*/
|
||||
@ -165,10 +169,10 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
src = null;
|
||||
dst = null;
|
||||
sendMessage(TopoJson.highlightsMessage(new Highlights()));
|
||||
sendMessage(highlightsMessage(new Highlights()));
|
||||
}
|
||||
}
|
||||
|
||||
@ -182,7 +186,7 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
String srcId = string(payload, SRCID);
|
||||
src = elementId(srcId);
|
||||
String dstId = string(payload, DSTID);
|
||||
@ -237,7 +241,7 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
String srcId = string(payload, SRCID);
|
||||
ElementId src = elementId(srcId);
|
||||
String dstId = string(payload, DSTID);
|
||||
@ -263,7 +267,7 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
result.putArray(BUFFER_ARRAY).addAll(arrayNode);
|
||||
sendMessage(PCEWEB_SHOW_TUNNEL, sid, result);
|
||||
sendMessage(PCEWEB_SHOW_TUNNEL, result);
|
||||
}
|
||||
}
|
||||
|
||||
@ -277,7 +281,7 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
String bandWidth = string(payload, BANDWIDTH);
|
||||
String bandWidthType = string(payload, BANDWIDTHTYPE);
|
||||
String costType = string(payload, COSTTYPE);
|
||||
@ -301,7 +305,7 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
String tunnelIdStr = string(payload, TUNNEL_ID);
|
||||
|
||||
if (tunnelIdStr == null) {
|
||||
@ -332,7 +336,7 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
arrayNode.add(tunnel.annotations().value("costType"));
|
||||
|
||||
result.putArray(BUFFER_ARRAY).addAll(arrayNode);
|
||||
sendMessage(PCEWEB_TUNNEL_UPDATE_INFO_REPLY, sid, result);
|
||||
sendMessage(PCEWEB_TUNNEL_UPDATE_INFO_REPLY, result);
|
||||
}
|
||||
}
|
||||
|
||||
@ -346,7 +350,7 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
String srcId = string(payload, SRCID);
|
||||
ElementId src = elementId(srcId);
|
||||
String dstId = string(payload, DSTID);
|
||||
@ -374,7 +378,7 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
result.putArray(BUFFER_ARRAY).addAll(arrayNode);
|
||||
sendMessage(PCEWEB_SHOW_TUNNEL_REMOVE, sid, result);
|
||||
sendMessage(PCEWEB_SHOW_TUNNEL_REMOVE, result);
|
||||
}
|
||||
}
|
||||
|
||||
@ -388,7 +392,7 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
String tunnelId = string(payload, TUNNEL_ID);
|
||||
|
||||
if (tunnelId == null) {
|
||||
@ -409,7 +413,7 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
ObjectNode result = objectNode();
|
||||
ArrayNode arrayNode = arrayNode();
|
||||
Collection<Tunnel> tunnelSet = null;
|
||||
@ -423,7 +427,7 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
result.putArray(BUFFER_ARRAY).addAll(arrayNode);
|
||||
sendMessage(PCEWEB_TUNNEL_QUERY_INFO, sid, result);
|
||||
sendMessage(PCEWEB_TUNNEL_QUERY_INFO, result);
|
||||
}
|
||||
}
|
||||
|
||||
@ -437,7 +441,7 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
String tunnelIdStr = string(payload, TUNNEL_ID);
|
||||
|
||||
if (tunnelIdStr == null) {
|
||||
@ -477,14 +481,18 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
/**
|
||||
* Handles the setup path and highlights the path.
|
||||
*
|
||||
* @param bandWidth
|
||||
* @param src ID of source
|
||||
* @param dst ID of destination
|
||||
* @param bandWidth bandwidth
|
||||
* @param bandWidthType is the kbps or mbps
|
||||
* @param costType is igp or te
|
||||
* @param lspType is WITH_SIGNALLING,WITHOUT_SIGNALLING_AND_WITHOUT_SR or SR_WITHOUT_SIGNALLING
|
||||
* @param tunnelName tunnel id
|
||||
* @param costType is igp or te
|
||||
* @param lspType is WITH_SIGNALLING, WITHOUT_SIGNALLING_AND_WITHOUT_SR
|
||||
* or SR_WITHOUT_SIGNALLING
|
||||
* @param tunnelName tunnel id
|
||||
*/
|
||||
private void findAndSendPaths(ElementId src, ElementId dst, String bandWidth, String bandWidthType,
|
||||
String costType, String lspType, String tunnelName) {
|
||||
private void findAndSendPaths(ElementId src, ElementId dst, String bandWidth,
|
||||
String bandWidthType, String costType,
|
||||
String lspType, String tunnelName) {
|
||||
log.debug("src={}; dst={};", src, dst);
|
||||
boolean path;
|
||||
List<Constraint> listConstrnt;
|
||||
@ -508,25 +516,24 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
//TODO: need to get explicit paths [temporarily using null as the value]
|
||||
path = pceService.setupPath((DeviceId) src, (DeviceId) dst, tunnelName, listConstrnt, lspTypeVal,
|
||||
null);
|
||||
if (!path) {
|
||||
log.error("setup path is failed");
|
||||
return;
|
||||
}
|
||||
path = pceService.setupPath((DeviceId) src, (DeviceId) dst,
|
||||
tunnelName, listConstrnt, lspTypeVal, null);
|
||||
|
||||
return;
|
||||
if (!path) {
|
||||
log.error("setup path is failed");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles the update path and highlights the path.
|
||||
*
|
||||
* @param bandWidth bandWidth
|
||||
* @param bandWidth bandWidth
|
||||
* @param bandWidthType is the kbps or mbps
|
||||
* @param costType is igp or te
|
||||
* @param tunnelIdStr tunnel id
|
||||
* @param costType is igp or te
|
||||
* @param tunnelIdStr tunnel id
|
||||
*/
|
||||
private void findAndSendPathsUpdate(String bandWidth, String bandWidthType, String costType, String tunnelIdStr) {
|
||||
private void findAndSendPathsUpdate(String bandWidth, String bandWidthType,
|
||||
String costType, String tunnelIdStr) {
|
||||
if (tunnelIdStr != null) {
|
||||
List<Constraint> listConstrnt;
|
||||
|
||||
@ -546,10 +553,8 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
|
||||
if (!path) {
|
||||
log.error("update path is failed");
|
||||
return;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -568,10 +573,8 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
boolean path = pceService.releasePath(tunnelId);
|
||||
if (!path) {
|
||||
log.error("remove path is failed");
|
||||
return;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
private ImmutableSet.Builder<Link> buildPaths(ImmutableSet.Builder<Link> pathBuilder) {
|
||||
@ -582,9 +585,9 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
/**
|
||||
* Handles the preparation of constraints list with given bandwidth and cost-type.
|
||||
*
|
||||
* @param bandWidth bandWidth
|
||||
* @param bandWidth bandWidth
|
||||
* @param bandWidthType is the kbps or mbps
|
||||
* @param costType is igp or te
|
||||
* @param costType is igp or te
|
||||
* @return
|
||||
*/
|
||||
private List<Constraint> addBandwidthCostTypeConstraints(String bandWidth,
|
||||
@ -605,14 +608,14 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
//Cost type
|
||||
CostConstraint.Type costTypeVal = null;
|
||||
switch (costType) {
|
||||
case COST_TYPE_IGP:
|
||||
costTypeVal = CostConstraint.Type.COST;
|
||||
break;
|
||||
case COST_TYPE_TE:
|
||||
costTypeVal = CostConstraint.Type.TE_COST;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
case COST_TYPE_IGP:
|
||||
costTypeVal = CostConstraint.Type.COST;
|
||||
break;
|
||||
case COST_TYPE_TE:
|
||||
costTypeVal = CostConstraint.Type.TE_COST;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (bwValue != 0.0) {
|
||||
@ -635,7 +638,7 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
for (Path path : paths) {
|
||||
for (Link link : path.links()) {
|
||||
lh = new LinkHighlight(TopoUtils.compactLinkString(link), PRIMARY_HIGHLIGHT)
|
||||
.addMod(new Mod(linkColor[linkclr]));
|
||||
.addMod(new Mod(LINK_COLOR[linkclr]));
|
||||
highlights.add(lh);
|
||||
}
|
||||
linkclr = linkclr + 1;
|
||||
@ -644,19 +647,19 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
}
|
||||
|
||||
sendMessage(TopoJson.highlightsMessage(highlights));
|
||||
sendMessage(highlightsMessage(highlights));
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles the addition of badge and highlights.
|
||||
* Handles the addition of badge and highlights.
|
||||
*
|
||||
* @param highlights highlights
|
||||
* @param elemId device to be add badge
|
||||
* @param src device to be add badge
|
||||
* @param elemId device to be add badge
|
||||
* @param src device to be add badge
|
||||
* @return
|
||||
*/
|
||||
private Highlights addBadge(Highlights highlights,
|
||||
String elemId, String src) {
|
||||
String elemId, String src) {
|
||||
highlights = addDeviceBadge(highlights, elemId, src);
|
||||
return highlights;
|
||||
}
|
||||
@ -664,9 +667,9 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
/**
|
||||
* Handles the badge add and highlights.
|
||||
*
|
||||
* @param h highlights
|
||||
* @param h highlights
|
||||
* @param elemId device to be add badge
|
||||
* @param type device badge value
|
||||
* @param type device badge value
|
||||
* @return highlights
|
||||
*/
|
||||
private Highlights addDeviceBadge(Highlights h, String elemId, String type) {
|
||||
@ -699,9 +702,9 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* Handles the event of topology listeners.
|
||||
*/
|
||||
*/
|
||||
private void findTunnelAndHighlights() {
|
||||
Collection<Tunnel> tunnelSet = null;
|
||||
Highlights highlights = new Highlights();
|
||||
@ -709,31 +712,31 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
tunnelSet = tunnelService.queryTunnel(MPLS);
|
||||
if (tunnelSet.size() == 0) {
|
||||
log.warn("Tunnel does not exist");
|
||||
sendMessage(TopoJson.highlightsMessage(highlights));
|
||||
sendMessage(highlightsMessage(highlights));
|
||||
return;
|
||||
}
|
||||
|
||||
for (Tunnel tunnel : tunnelSet) {
|
||||
if (tunnel.path() == null) {
|
||||
log.error("path does not exist");
|
||||
sendMessage(TopoJson.highlightsMessage(highlights));
|
||||
sendMessage(highlightsMessage(highlights));
|
||||
return;
|
||||
}
|
||||
if (!tunnel.state().equals(ACTIVE)) {
|
||||
log.debug("Tunnel state is not active");
|
||||
sendMessage(TopoJson.highlightsMessage(highlights));
|
||||
sendMessage(highlightsMessage(highlights));
|
||||
return;
|
||||
}
|
||||
Link firstLink = tunnel.path().links().get(0);
|
||||
if (firstLink != null) {
|
||||
if (firstLink.src() != null) {
|
||||
highlights = addBadge(highlights, firstLink.src().deviceId().toString(), SRC);
|
||||
highlights = addBadge(highlights, firstLink.src().deviceId().toString(), SRC);
|
||||
}
|
||||
}
|
||||
Link lastLink = tunnel.path().links().get(tunnel.path().links().size() - 1);
|
||||
if (lastLink != null) {
|
||||
if (lastLink.dst() != null) {
|
||||
highlights = addBadge(highlights, lastLink.dst().deviceId().toString(), DST);
|
||||
highlights = addBadge(highlights, lastLink.dst().deviceId().toString(), DST);
|
||||
}
|
||||
}
|
||||
paths.add(tunnel.path());
|
||||
@ -752,12 +755,12 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
paths.removeAll(paths);
|
||||
if (tunnel.path() == null) {
|
||||
log.error("path does not exist");
|
||||
sendMessage(TopoJson.highlightsMessage(highlights));
|
||||
sendMessage(highlightsMessage(highlights));
|
||||
return;
|
||||
}
|
||||
if (!tunnel.state().equals(ACTIVE)) {
|
||||
log.debug("Tunnel state is not active");
|
||||
sendMessage(TopoJson.highlightsMessage(highlights));
|
||||
sendMessage(highlightsMessage(highlights));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -770,7 +773,7 @@ public class PceWebTopovMessageHandler extends UiMessageHandler {
|
||||
Link lastLink = tunnel.path().links().get(tunnel.path().links().size() - 1);
|
||||
if (lastLink != null) {
|
||||
if (lastLink.dst() != null) {
|
||||
highlights = addBadge(highlights, lastLink.dst().deviceId().toString(), DST);
|
||||
highlights = addBadge(highlights, lastLink.dst().deviceId().toString(), DST);
|
||||
}
|
||||
}
|
||||
paths.add(tunnel.path());
|
||||
|
||||
@ -157,7 +157,7 @@ public class IntentPerfUi {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
streamingEnabled = true;
|
||||
sendInitData();
|
||||
}
|
||||
@ -171,7 +171,7 @@ public class IntentPerfUi {
|
||||
|
||||
collector.getSampleHeaders().forEach(an::add);
|
||||
collector.getSamples().forEach(s -> sn.add(sampleNode(s)));
|
||||
sendMessage("intentPerfInit", 0, rootNode);
|
||||
sendMessage("intentPerfInit", rootNode);
|
||||
}
|
||||
}
|
||||
|
||||
@ -184,7 +184,7 @@ public class IntentPerfUi {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
streamingEnabled = false;
|
||||
}
|
||||
}
|
||||
|
||||
@ -15,16 +15,10 @@
|
||||
*/
|
||||
package org.onosproject.sfcweb;
|
||||
|
||||
import static org.onosproject.net.DefaultEdgeLink.createEdgeLink;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.ListIterator;
|
||||
import java.util.Set;
|
||||
import java.util.TimerTask;
|
||||
|
||||
import com.fasterxml.jackson.databind.node.ArrayNode;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import jersey.repackaged.com.google.common.collect.Lists;
|
||||
|
||||
import org.onlab.osgi.DefaultServiceDirectory;
|
||||
import org.onlab.osgi.ServiceDirectory;
|
||||
import org.onlab.packet.MacAddress;
|
||||
@ -59,9 +53,13 @@ import org.onosproject.vtnrsc.virtualport.VirtualPortService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.fasterxml.jackson.databind.node.ArrayNode;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.ListIterator;
|
||||
import java.util.Set;
|
||||
import java.util.TimerTask;
|
||||
|
||||
import static org.onosproject.net.DefaultEdgeLink.createEdgeLink;
|
||||
|
||||
/**
|
||||
* SFC web gui topology-overlay message handler.
|
||||
@ -125,8 +123,9 @@ public class SfcwebUiTopovMessageHandler extends UiMessageHandler {
|
||||
public DisplayStartHandler() {
|
||||
super(SAMPLE_TOPOV_DISPLAY_START);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
String mode = string(payload, MODE);
|
||||
PortChainService pcs = get(PortChainService.class);
|
||||
Iterable<PortChain> portChains = pcs.getPortChains();
|
||||
@ -139,7 +138,7 @@ public class SfcwebUiTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
result.putArray("a").addAll(arrayNode);
|
||||
|
||||
sendMessage(SAMPLE_TOPOV_DISPLAY_SFC, sid, result);
|
||||
sendMessage(SAMPLE_TOPOV_DISPLAY_SFC, result);
|
||||
}
|
||||
}
|
||||
|
||||
@ -149,7 +148,7 @@ public class SfcwebUiTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
log.debug("Stop Display");
|
||||
clearState();
|
||||
clearForMode();
|
||||
@ -163,7 +162,7 @@ public class SfcwebUiTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
String id = string(payload, ID);
|
||||
ServiceDirectory serviceDirectory = new DefaultServiceDirectory();
|
||||
vtnRscService = serviceDirectory.get(VtnRscService.class);
|
||||
@ -269,7 +268,7 @@ public class SfcwebUiTopovMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
result.putArray("sfcPathList").addAll(arrayNode);
|
||||
|
||||
sendMessage(SAMPLE_TOPOV_SHOW_SFC_PATH, sid, result);
|
||||
sendMessage(SAMPLE_TOPOV_SHOW_SFC_PATH, result);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -59,11 +59,9 @@ public abstract class RequestHandler {
|
||||
/**
|
||||
* Processes the incoming message payload from the client.
|
||||
*
|
||||
* @param sid message sequence identifier
|
||||
* @param payload request message payload
|
||||
*/
|
||||
// TODO: remove sid from signature
|
||||
public abstract void process(long sid, ObjectNode payload);
|
||||
public abstract void process(ObjectNode payload);
|
||||
|
||||
|
||||
// ===================================================================
|
||||
@ -81,19 +79,6 @@ public abstract class RequestHandler {
|
||||
return parent.directory().get(serviceClass);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a message back to the client with the given event type and payload.
|
||||
*
|
||||
* @param eventType message event type
|
||||
* @param sid message sequence identifier
|
||||
* @param payload message payload
|
||||
*/
|
||||
// TODO: remove sid from signature
|
||||
@Deprecated
|
||||
protected void sendMessage(String eventType, long sid, ObjectNode payload) {
|
||||
parent.connection().sendMessage(eventType, sid, payload);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends a message back to the client with the given event type and payload.
|
||||
*
|
||||
@ -108,7 +93,7 @@ public abstract class RequestHandler {
|
||||
/**
|
||||
* Sends a message back to the client.
|
||||
* Here, the message is preformatted; the assumption is that it has its
|
||||
* eventType and payload attributes already filled in.
|
||||
* "event" (event type) and "payload" attributes already filled in.
|
||||
*
|
||||
* @param message the message to send
|
||||
*/
|
||||
@ -122,12 +107,10 @@ public abstract class RequestHandler {
|
||||
* Note that the message handlers must be defined in the same parent.
|
||||
*
|
||||
* @param eventType event type
|
||||
* @param sid sequence identifier
|
||||
* @param payload message payload
|
||||
*/
|
||||
// TODO: remove sid from signature
|
||||
protected void chain(String eventType, long sid, ObjectNode payload) {
|
||||
parent.exec(eventType, sid, payload);
|
||||
protected void chain(String eventType, ObjectNode payload) {
|
||||
parent.exec(eventType, payload);
|
||||
}
|
||||
|
||||
// ===================================================================
|
||||
|
||||
@ -39,7 +39,7 @@ import static com.google.common.base.Preconditions.checkNotNull;
|
||||
* </p>
|
||||
* <pre>
|
||||
* {
|
||||
* "type": "<em>event-type</em>",
|
||||
* "event": "<em>event-type</em>",
|
||||
* "payload": {
|
||||
* <em>arbitrary JSON object structure</em>
|
||||
* }
|
||||
@ -93,22 +93,19 @@ public abstract class UiMessageHandler {
|
||||
public void process(ObjectNode message) {
|
||||
String type = JsonUtils.eventType(message);
|
||||
ObjectNode payload = JsonUtils.payload(message);
|
||||
// TODO: remove sid
|
||||
exec(type, 0, payload);
|
||||
exec(type, payload);
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds the appropriate handler and executes the process method.
|
||||
*
|
||||
* @param eventType event type
|
||||
* @param sid sequence identifier
|
||||
* @param payload message payload
|
||||
*/
|
||||
// TODO: remove sid from signature
|
||||
void exec(String eventType, long sid, ObjectNode payload) {
|
||||
void exec(String eventType, ObjectNode payload) {
|
||||
RequestHandler requestHandler = handlerMap.get(eventType);
|
||||
if (requestHandler != null) {
|
||||
requestHandler.process(sid, payload);
|
||||
requestHandler.process(payload);
|
||||
} else {
|
||||
log.warn("no request handler for event type {}", eventType);
|
||||
}
|
||||
|
||||
@ -49,7 +49,7 @@ public abstract class ChartRequestHandler extends RequestHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
ChartModel cm = createChartModel();
|
||||
populateChart(cm, payload);
|
||||
|
||||
|
||||
@ -46,9 +46,9 @@ public abstract class TableRequestHandler extends RequestHandler {
|
||||
* table rows, sort them according the the request sort parameters, and
|
||||
* send back the response to the client.
|
||||
*
|
||||
* @param reqType type of the request event
|
||||
* @param respType type of the response event
|
||||
* @param nodeName name of JSON node holding row data
|
||||
* @param reqType type of the request event
|
||||
* @param respType type of the response event
|
||||
* @param nodeName name of JSON node holding row data
|
||||
*/
|
||||
public TableRequestHandler(String reqType, String respType, String nodeName) {
|
||||
super(reqType);
|
||||
@ -57,7 +57,7 @@ public abstract class TableRequestHandler extends RequestHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
TableModel tm = createTableModel();
|
||||
populateTable(tm, payload);
|
||||
|
||||
@ -72,7 +72,7 @@ public abstract class TableRequestHandler extends RequestHandler {
|
||||
ObjectNode rootNode = MAPPER.createObjectNode();
|
||||
rootNode.set(nodeName, TableUtils.generateRowArrayNode(tm));
|
||||
rootNode.set(ANNOTS, TableUtils.generateAnnotObjectNode(tm));
|
||||
sendMessage(respType, 0, rootNode);
|
||||
sendMessage(respType, rootNode);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -91,7 +91,7 @@ public abstract class TableRequestHandler extends RequestHandler {
|
||||
/**
|
||||
* Adds table configuration specific annotations to table model.
|
||||
*
|
||||
* @param tm a table model
|
||||
* @param tm a table model
|
||||
* @param payload the event payload from the client
|
||||
*/
|
||||
protected void addTableConfigAnnotations(TableModel tm, ObjectNode payload) {
|
||||
@ -141,7 +141,7 @@ public abstract class TableRequestHandler extends RequestHandler {
|
||||
* parameters (other than sort column and sort direction) that are required
|
||||
* to generate the appropriate data.
|
||||
*
|
||||
* @param tm the table model
|
||||
* @param tm the table model
|
||||
* @param payload request payload
|
||||
*/
|
||||
protected abstract void populateTable(TableModel tm, ObjectNode payload);
|
||||
|
||||
@ -133,20 +133,27 @@ public class ApplicationViewMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
String action = string(payload, "action");
|
||||
String name = string(payload, "name");
|
||||
|
||||
if (action != null && name != null) {
|
||||
ApplicationAdminService service = get(ApplicationAdminService.class);
|
||||
ApplicationId appId = service.getId(name);
|
||||
if (action.equals("activate")) {
|
||||
service.activate(appId);
|
||||
} else if (action.equals("deactivate")) {
|
||||
service.deactivate(appId);
|
||||
} else if (action.equals("uninstall")) {
|
||||
service.uninstall(appId);
|
||||
switch (action) {
|
||||
case "activate":
|
||||
service.activate(appId);
|
||||
break;
|
||||
case "deactivate":
|
||||
service.deactivate(appId);
|
||||
break;
|
||||
case "uninstall":
|
||||
service.uninstall(appId);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
chain(APP_DATA_REQ, sid, payload);
|
||||
chain(APP_DATA_REQ, payload);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -158,7 +165,7 @@ public class ApplicationViewMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
String id = string(payload, ID);
|
||||
ApplicationService as = get(ApplicationService.class);
|
||||
|
||||
@ -204,7 +211,7 @@ public class ApplicationViewMessageHandler extends UiMessageHandler {
|
||||
|
||||
ObjectNode rootNode = objectNode();
|
||||
rootNode.set(DETAILS, data);
|
||||
sendMessage(APP_DETAILS_RESP, 0, rootNode);
|
||||
sendMessage(APP_DETAILS_RESP, rootNode);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -168,7 +168,7 @@ public class ClusterViewMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
|
||||
String id = string(payload, ID);
|
||||
ClusterService cs = get(ClusterService.class);
|
||||
|
||||
@ -41,7 +41,6 @@ import org.slf4j.LoggerFactory;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
@ -181,7 +180,7 @@ public class DeviceViewMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
String id = string(payload, ID, ZERO_URI);
|
||||
|
||||
DeviceId deviceId = deviceId(id);
|
||||
@ -206,7 +205,7 @@ public class DeviceViewMessageHandler extends UiMessageHandler {
|
||||
ArrayNode ports = arrayNode();
|
||||
|
||||
List<Port> portList = new ArrayList<>(service.getPorts(deviceId));
|
||||
Collections.sort(portList, (p1, p2) -> {
|
||||
portList.sort((p1, p2) -> {
|
||||
long delta = p1.number().toLong() - p2.number().toLong();
|
||||
return delta == 0 ? 0 : (delta < 0 ? -1 : +1);
|
||||
});
|
||||
@ -218,7 +217,7 @@ public class DeviceViewMessageHandler extends UiMessageHandler {
|
||||
|
||||
ObjectNode rootNode = objectNode();
|
||||
rootNode.set(DETAILS, data);
|
||||
sendMessage(DEV_DETAILS_RESP, 0, rootNode);
|
||||
sendMessage(DEV_DETAILS_RESP, rootNode);
|
||||
}
|
||||
|
||||
private ObjectNode portData(Port p, DeviceId id) {
|
||||
@ -262,7 +261,7 @@ public class DeviceViewMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
DeviceId deviceId = deviceId(string(payload, ID, ZERO_URI));
|
||||
String name = emptyToNull(string(payload, NAME, null));
|
||||
log.debug("Name change request: {} -- '{}'", deviceId, name);
|
||||
@ -275,7 +274,7 @@ public class DeviceViewMessageHandler extends UiMessageHandler {
|
||||
// means that the friendly name should be unset.
|
||||
cfg.name(name);
|
||||
cfg.apply();
|
||||
sendMessage(DEV_NAME_CHANGE_RESP, 0, payload);
|
||||
sendMessage(DEV_NAME_CHANGE_RESP, payload);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -132,17 +132,17 @@ public class FlowViewMessageHandler extends UiMessageHandler {
|
||||
|
||||
private void populateRow(TableModel.Row row, FlowEntry flow) {
|
||||
row.cell(ID, flow.id().value())
|
||||
.cell(APP_ID, flow.appId())
|
||||
.cell(GROUP_ID, flow.groupId().id())
|
||||
.cell(TABLE_ID, flow.tableId())
|
||||
.cell(PRIORITY, flow.priority())
|
||||
.cell(TIMEOUT, flow.timeout())
|
||||
.cell(PERMANENT, flow.isPermanent())
|
||||
.cell(STATE, flow.state())
|
||||
.cell(PACKETS, flow.packets())
|
||||
.cell(BYTES, flow.bytes())
|
||||
.cell(SELECTOR, flow)
|
||||
.cell(TREATMENT, flow);
|
||||
.cell(APP_ID, flow.appId())
|
||||
.cell(GROUP_ID, flow.groupId().id())
|
||||
.cell(TABLE_ID, flow.tableId())
|
||||
.cell(PRIORITY, flow.priority())
|
||||
.cell(TIMEOUT, flow.timeout())
|
||||
.cell(PERMANENT, flow.isPermanent())
|
||||
.cell(STATE, flow.state())
|
||||
.cell(PACKETS, flow.packets())
|
||||
.cell(BYTES, flow.bytes())
|
||||
.cell(SELECTOR, flow)
|
||||
.cell(TREATMENT, flow);
|
||||
}
|
||||
|
||||
private final class SelectorFormatter implements CellFormatter {
|
||||
@ -258,7 +258,7 @@ public class FlowViewMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
|
||||
String flowId = string(payload, FLOW_ID);
|
||||
String appId = string(payload, APP_ID);
|
||||
|
||||
@ -127,12 +127,12 @@ public class GroupViewMessageHandler extends UiMessageHandler {
|
||||
|
||||
private void populateRow(TableModel.Row row, Group g) {
|
||||
row.cell(ID, g.id().id())
|
||||
.cell(APP_ID, g.appId().name())
|
||||
.cell(STATE, g.state())
|
||||
.cell(TYPE, g.type())
|
||||
.cell(PACKETS, g.packets())
|
||||
.cell(BYTES, g.bytes())
|
||||
.cell(BUCKETS, g.buckets().buckets());
|
||||
.cell(APP_ID, g.appId().name())
|
||||
.cell(STATE, g.state())
|
||||
.cell(TYPE, g.type())
|
||||
.cell(PACKETS, g.packets())
|
||||
.cell(BYTES, g.bytes())
|
||||
.cell(BUCKETS, g.buckets().buckets());
|
||||
}
|
||||
|
||||
private final class BucketFormatter implements CellFormatter {
|
||||
|
||||
@ -112,12 +112,12 @@ public class IntentViewMessageHandler extends UiMessageHandler {
|
||||
|
||||
private void populateRow(TableModel.Row row, Intent intent, IntentService is) {
|
||||
row.cell(APP_ID, intent.appId())
|
||||
.cell(KEY, intent.key())
|
||||
.cell(TYPE, intent.getClass().getSimpleName())
|
||||
.cell(PRIORITY, intent.priority())
|
||||
.cell(STATE, is.getIntentState(intent.key()))
|
||||
.cell(RESOURCES, intent)
|
||||
.cell(DETAILS, intent);
|
||||
.cell(KEY, intent.key())
|
||||
.cell(TYPE, intent.getClass().getSimpleName())
|
||||
.cell(PRIORITY, intent.priority())
|
||||
.cell(STATE, is.getIntentState(intent.key()))
|
||||
.cell(RESOURCES, intent)
|
||||
.cell(DETAILS, intent);
|
||||
}
|
||||
|
||||
private final class ResourcesFormatter implements CellFormatter {
|
||||
|
||||
@ -20,10 +20,10 @@ import com.fasterxml.jackson.databind.node.ArrayNode;
|
||||
import com.fasterxml.jackson.databind.node.ObjectNode;
|
||||
import com.google.common.collect.ImmutableSet;
|
||||
import org.onosproject.ui.RequestHandler;
|
||||
import org.onosproject.ui.UiMessageHandler;
|
||||
import org.onosproject.ui.UiExtensionService;
|
||||
import org.onosproject.ui.UiTopoMapFactory;
|
||||
import org.onosproject.ui.UiMessageHandler;
|
||||
import org.onosproject.ui.UiTopoMap;
|
||||
import org.onosproject.ui.UiTopoMapFactory;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
@ -56,8 +56,8 @@ class MapSelectorMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
sendMessage(MAP_LIST_RESP, 0, mapsJson());
|
||||
public void process(ObjectNode payload) {
|
||||
sendMessage(MAP_LIST_RESP, mapsJson());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -78,12 +78,6 @@ public class SettingsViewMessageHandler extends UiMessageHandler {
|
||||
return COMPONENT;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected TableModel createTableModel() {
|
||||
TableModel tm = super.createTableModel();
|
||||
return tm;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void populateTable(TableModel tm, ObjectNode payload) {
|
||||
ComponentConfigService ccs = get(ComponentConfigService.class);
|
||||
|
||||
@ -67,7 +67,6 @@ import org.onosproject.ui.topo.PropertyPanel;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
@ -159,7 +158,7 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
private static final long SUMMARY_PERIOD = 30000;
|
||||
|
||||
private static final Comparator<? super ControllerNode> NODE_COMPARATOR =
|
||||
(o1, o2) -> o1.id().toString().compareTo(o2.id().toString());
|
||||
Comparator.comparing(o -> o.id().toString());
|
||||
|
||||
|
||||
private final Timer timer = new Timer("onos-topology-view");
|
||||
@ -255,7 +254,7 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
addListeners();
|
||||
sendAllInstances(null);
|
||||
sendAllDevices();
|
||||
@ -271,7 +270,7 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
String deact = string(payload, DEACTIVATE);
|
||||
String act = string(payload, ACTIVATE);
|
||||
overlayCache.switchOverlay(deact, act);
|
||||
@ -284,7 +283,7 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
removeListeners();
|
||||
stopSummaryMonitoring();
|
||||
traffic.stopMonitoring();
|
||||
@ -297,8 +296,8 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
requestSummary(sid);
|
||||
public void process(ObjectNode payload) {
|
||||
requestSummary();
|
||||
startSummaryMonitoring();
|
||||
}
|
||||
}
|
||||
@ -309,7 +308,7 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
stopSummaryMonitoring();
|
||||
}
|
||||
}
|
||||
@ -320,12 +319,12 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
ObjectNode root = objectNode();
|
||||
ArrayNode names = arrayNode();
|
||||
get(SpriteService.class).getNames().forEach(names::add);
|
||||
root.set(NAMES, names);
|
||||
sendMessage(SPRITE_LIST_RESPONSE, sid, root);
|
||||
sendMessage(SPRITE_LIST_RESPONSE, root);
|
||||
}
|
||||
}
|
||||
|
||||
@ -335,11 +334,11 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
String name = string(payload, NAME);
|
||||
ObjectNode root = objectNode();
|
||||
root.set(DATA, get(SpriteService.class).get(name));
|
||||
sendMessage(SPRITE_DATA_RESPONSE, sid, root);
|
||||
sendMessage(SPRITE_DATA_RESPONSE, root);
|
||||
}
|
||||
}
|
||||
|
||||
@ -349,22 +348,22 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
String type = string(payload, CLASS, UNKNOWN);
|
||||
String id = string(payload, ID);
|
||||
PropertyPanel pp = null;
|
||||
|
||||
if (type.equals(DEVICE)) {
|
||||
DeviceId did = deviceId(id);
|
||||
pp = deviceDetails(did, sid);
|
||||
pp = deviceDetails(did);
|
||||
overlayCache.currentOverlay().modifyDeviceDetails(pp, did);
|
||||
} else if (type.equals(HOST)) {
|
||||
HostId hid = hostId(id);
|
||||
pp = hostDetails(hid, sid);
|
||||
pp = hostDetails(hid);
|
||||
overlayCache.currentOverlay().modifyHostDetails(pp, hid);
|
||||
}
|
||||
|
||||
sendMessage(envelope(SHOW_DETAILS, sid, json(pp)));
|
||||
sendMessage(envelope(SHOW_DETAILS, json(pp)));
|
||||
}
|
||||
}
|
||||
|
||||
@ -374,7 +373,7 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
updateMetaUi(payload);
|
||||
}
|
||||
}
|
||||
@ -385,7 +384,7 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
directory.get(MastershipAdminService.class).balanceRoles();
|
||||
}
|
||||
}
|
||||
@ -401,7 +400,7 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
// TODO: add protection against device ids and non-existent hosts.
|
||||
HostId one = hostId(string(payload, ONE));
|
||||
HostId two = hostId(string(payload, TWO));
|
||||
@ -441,7 +440,7 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
Intent intent = findIntentByPayload(payload);
|
||||
if (intent == null) {
|
||||
log.warn("Unable to find intent from payload {}", payload);
|
||||
@ -462,7 +461,7 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
Intent intent = findIntentByPayload(payload);
|
||||
if (intent == null) {
|
||||
log.warn("Unable to find intent from payload {}", payload);
|
||||
@ -479,7 +478,7 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
// TODO: add protection against device ids and non-existent hosts.
|
||||
Set<HostId> src = getHostIds((ArrayNode) payload.path(SRC));
|
||||
HostId dst = hostId(string(payload, DST));
|
||||
@ -516,7 +515,7 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
traffic.monitor(Mode.ALL_FLOW_TRAFFIC);
|
||||
}
|
||||
}
|
||||
@ -527,7 +526,7 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
traffic.monitor(Mode.ALL_PORT_TRAFFIC);
|
||||
}
|
||||
}
|
||||
@ -538,7 +537,7 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
NodeSelection nodeSelection =
|
||||
new NodeSelection(payload, deviceService, hostService, linkService);
|
||||
traffic.monitor(Mode.DEV_LINK_FLOWS, nodeSelection);
|
||||
@ -551,7 +550,7 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
NodeSelection nodeSelection =
|
||||
new NodeSelection(payload, deviceService, hostService, linkService);
|
||||
traffic.monitor(Mode.RELATED_INTENTS, nodeSelection);
|
||||
@ -564,7 +563,7 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
traffic.selectNextIntent();
|
||||
}
|
||||
}
|
||||
@ -575,7 +574,7 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
traffic.selectPreviousIntent();
|
||||
}
|
||||
}
|
||||
@ -586,7 +585,7 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
traffic.monitor(Mode.SELECTED_INTENT);
|
||||
}
|
||||
}
|
||||
@ -597,7 +596,7 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
Intent intent = findIntentByPayload(payload);
|
||||
if (intent == null) {
|
||||
log.warn("Unable to find intent from payload {}", payload);
|
||||
@ -614,7 +613,7 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
traffic.stopMonitoring();
|
||||
}
|
||||
}
|
||||
@ -622,15 +621,15 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
//=======================================================================
|
||||
|
||||
// Converts highlights to JSON format and sends the message to the client
|
||||
protected void sendHighlights(Highlights highlights) {
|
||||
void sendHighlights(Highlights highlights) {
|
||||
sendMessage(highlightsMessage(highlights));
|
||||
}
|
||||
|
||||
// Subscribes for summary messages.
|
||||
private synchronized void requestSummary(long sid) {
|
||||
PropertyPanel pp = summmaryMessage(sid);
|
||||
private synchronized void requestSummary() {
|
||||
PropertyPanel pp = summmaryMessage();
|
||||
overlayCache.currentOverlay().modifySummary(pp);
|
||||
sendMessage(envelope(SHOW_SUMMARY, sid, json(pp)));
|
||||
sendMessage(envelope(SHOW_SUMMARY, json(pp)));
|
||||
}
|
||||
|
||||
|
||||
@ -642,7 +641,7 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
// Sends all controller nodes to the client as node-added messages.
|
||||
private void sendAllInstances(String messageType) {
|
||||
List<ControllerNode> nodes = new ArrayList<>(clusterService.getNodes());
|
||||
Collections.sort(nodes, NODE_COMPARATOR);
|
||||
nodes.sort(NODE_COMPARATOR);
|
||||
for (ControllerNode node : nodes) {
|
||||
sendMessage(instanceMessage(new ClusterEvent(INSTANCE_ADDED, node),
|
||||
messageType));
|
||||
@ -873,7 +872,7 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
public void run() {
|
||||
try {
|
||||
if (summaryRunning) {
|
||||
msgSender.execute(() -> requestSummary(0));
|
||||
msgSender.execute(() -> requestSummary());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.warn("Unable to handle summary request due to {}", e.getMessage());
|
||||
@ -900,7 +899,7 @@ public class TopologyViewMessageHandler extends TopologyViewMessageHandlerBase {
|
||||
|
||||
try {
|
||||
if (summaryRunning) {
|
||||
msgSender.execute(() -> requestSummary(0));
|
||||
msgSender.execute(() -> requestSummary());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.warn("Unable to handle summary request due to {}", e.getMessage());
|
||||
|
||||
@ -395,7 +395,7 @@ public abstract class TopologyViewMessageHandlerBase extends UiMessageHandler {
|
||||
// Create models of the data to return, that overlays can adjust / augment
|
||||
|
||||
// Returns property panel model for summary response.
|
||||
protected PropertyPanel summmaryMessage(long sid) {
|
||||
protected PropertyPanel summmaryMessage() {
|
||||
Topology topology = topologyService.currentTopology();
|
||||
|
||||
return new PropertyPanel("ONOS Summary", "node")
|
||||
@ -412,7 +412,7 @@ public abstract class TopologyViewMessageHandlerBase extends UiMessageHandler {
|
||||
}
|
||||
|
||||
// Returns property panel model for device details response.
|
||||
protected PropertyPanel deviceDetails(DeviceId deviceId, long sid) {
|
||||
protected PropertyPanel deviceDetails(DeviceId deviceId) {
|
||||
Device device = deviceService.getDevice(deviceId);
|
||||
Annotations annot = device.annotations();
|
||||
String name = annot.value(AnnotationKeys.NAME);
|
||||
@ -525,7 +525,7 @@ public abstract class TopologyViewMessageHandlerBase extends UiMessageHandler {
|
||||
}
|
||||
|
||||
// Returns host details response.
|
||||
protected PropertyPanel hostDetails(HostId hostId, long sid) {
|
||||
protected PropertyPanel hostDetails(HostId hostId) {
|
||||
Host host = hostService.getHost(hostId);
|
||||
Annotations annot = host.annotations();
|
||||
String type = annot.value(AnnotationKeys.TYPE);
|
||||
|
||||
@ -46,12 +46,12 @@ class UserPreferencesMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
if (!isNullOrEmpty(connection().userName())) {
|
||||
UiPreferencesService service = get(UiPreferencesService.class);
|
||||
service.setPreference(connection().userName(),
|
||||
payload.get(KEY).asText(),
|
||||
(ObjectNode) payload.get(VALUE));
|
||||
payload.get(KEY).asText(),
|
||||
(ObjectNode) payload.get(VALUE));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -67,7 +67,6 @@ public class Topo2ViewMessageHandler extends UiMessageHandler {
|
||||
private static final String CURRENT_LAYOUT = "topo2CurrentLayout";
|
||||
private static final String CURRENT_REGION = "topo2CurrentRegion";
|
||||
private static final String PEER_REGIONS = "topo2PeerRegions";
|
||||
private static final String TOPO_START_DONE = "topo2StartDone";
|
||||
|
||||
|
||||
private UiTopoSession topoSession;
|
||||
@ -122,7 +121,7 @@ public class Topo2ViewMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
// client view is ready to receive data to display; so start up
|
||||
// server-side processing, and send over initial state
|
||||
|
||||
@ -162,7 +161,7 @@ public class Topo2ViewMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
String rid = string(payload, "rid");
|
||||
log.debug("topo2navRegion: rid={}", rid);
|
||||
|
||||
@ -185,7 +184,7 @@ public class Topo2ViewMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
// client view has gone away; so shut down server-side processing
|
||||
// TODO: implement...
|
||||
|
||||
@ -204,7 +203,7 @@ public class Topo2ViewMessageHandler extends UiMessageHandler {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void process(long sid, ObjectNode payload) {
|
||||
public void process(ObjectNode payload) {
|
||||
t2json.updateMeta(payload);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# Main Application
|
||||
# Main ONOS UI Web Application
|
||||
|
||||
index.html is the main launch point for the application.
|
||||
../index.html is the main launch point for the application.
|
||||
|
||||
fw/ contains framework related code
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
ONOS GUI -- General Purpose Angular directives defined here.
|
||||
ONOS GUI -- General Purpose Angular directives.
|
||||
*/
|
||||
|
||||
(function () {
|
||||
|
||||
@ -27,7 +27,6 @@
|
||||
var webSockOpts, // web socket options
|
||||
ws = null, // web socket reference
|
||||
wsUp = false, // web socket is good to go
|
||||
sid = 0, // event sequence identifier
|
||||
handlers = {}, // event handler bindings
|
||||
pendingEvents = [], // events TX'd while socket not up
|
||||
host, // web socket host
|
||||
@ -108,7 +107,7 @@
|
||||
function handleClose() {
|
||||
var gsucc;
|
||||
|
||||
$log.info('Web socket closed');
|
||||
$log.warn('Web socket closed');
|
||||
ls && ls.stop();
|
||||
wsUp = false;
|
||||
|
||||
@ -167,9 +166,6 @@
|
||||
// === API Functions
|
||||
|
||||
// Required for unit tests to set to known state
|
||||
function resetSid() {
|
||||
sid = 0;
|
||||
}
|
||||
function resetState() {
|
||||
webSockOpts = undefined;
|
||||
ws = null;
|
||||
@ -178,7 +174,6 @@
|
||||
url = undefined;
|
||||
pendingEvents = [];
|
||||
handlers = {};
|
||||
sid = 0;
|
||||
clusterNodes = [];
|
||||
clusterIndex = -1;
|
||||
connectRetries = 0;
|
||||
@ -291,7 +286,6 @@
|
||||
function sendEvent(evType, payload) {
|
||||
var ev = {
|
||||
event: evType,
|
||||
sid: ++sid,
|
||||
payload: payload || {}
|
||||
};
|
||||
|
||||
@ -329,7 +323,6 @@
|
||||
bindHandlers(builtinHandlers);
|
||||
|
||||
return {
|
||||
resetSid: resetSid,
|
||||
resetState: resetState,
|
||||
createWebSocket: createWebSocket,
|
||||
bindHandlers: bindHandlers,
|
||||
|
||||
@ -79,7 +79,7 @@ describe('factory: fw/remote/websocket.js', function () {
|
||||
|
||||
it('should define api functions', function () {
|
||||
expect(fs.areFunctions(wss, [
|
||||
'resetSid', 'resetState',
|
||||
'resetState',
|
||||
'createWebSocket', 'bindHandlers', 'unbindHandlers',
|
||||
'addOpenListener', 'removeOpenListener', 'sendEvent',
|
||||
'isConnected', 'loggedInUser',
|
||||
@ -118,7 +118,6 @@ describe('factory: fw/remote/websocket.js', function () {
|
||||
it('should send pending events, handleOpen', function () {
|
||||
var fakeEvent = {
|
||||
event: 'mockEv',
|
||||
sid: 1,
|
||||
payload: { mock: 'thing' }
|
||||
};
|
||||
wss.sendEvent(fakeEvent.event, fakeEvent.payload);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user