[ONOS-3722] Augment TableModel to support annotations
Change-Id: Ie90fa6b26887ddd5afb03eb116304c16f10396ff
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/GroupViewMessageHandler.java b/web/gui/src/main/java/org/onosproject/ui/impl/GroupViewMessageHandler.java
index ab61a6a..cc7f5e6 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/GroupViewMessageHandler.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/GroupViewMessageHandler.java
@@ -19,7 +19,9 @@
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableSet;
+import org.onosproject.net.Device;
import org.onosproject.net.DeviceId;
+import org.onosproject.net.device.DeviceService;
import org.onosproject.net.group.Group;
import org.onosproject.net.group.GroupBucket;
import org.onosproject.net.group.GroupService;
@@ -45,6 +47,9 @@
private static final String GROUP_DATA_RESP = "groupDataResponse";
private static final String GROUPS = "groups";
+ private static final String PROTOCOL = "protocol";
+ private static final String OF_10 = "OF_10";
+
private static final String ID = "id";
private static final String APP_ID = "app_id";
private static final String STATE = "state";
@@ -62,10 +67,16 @@
return ImmutableSet.of(new GroupDataRequest());
}
+ private static String deviceProtocol(Device device) {
+ String protocol = device.annotations().value(PROTOCOL);
+ return protocol != null ? protocol : "";
+ }
+
// handler for group table requests
private final class GroupDataRequest extends TableRequestHandler {
private static final String NO_ROWS_MESSAGE = "No groups found";
+ private static final String NOT_SUPPORT_MESSAGE = "Groups not supported";
private GroupDataRequest() {
super(GROUP_DATA_REQ, GROUP_DATA_RESP, GROUPS);
@@ -77,8 +88,17 @@
}
@Override
- protected String noRowsMessage() {
- // TODO: if devices with OF 1.0, should return not support message
+ protected String noRowsMessage(ObjectNode payload) {
+ String uri = string(payload, "devId");
+ if (!Strings.isNullOrEmpty(uri)) {
+ DeviceService ds = get(DeviceService.class);
+ Device dev = ds.getDevice(DeviceId.deviceId(uri));
+
+ // TODO: replace with a less brittle solution...
+ if (deviceProtocol(dev).equals(OF_10)) {
+ return NOT_SUPPORT_MESSAGE;
+ }
+ }
return NO_ROWS_MESSAGE;
}