diff options
author | 2016-09-13 11:40:12 +0800 | |
---|---|---|
committer | 2016-09-13 11:41:53 +0800 | |
commit | b731e2f1dd0972409b136aebc7b463dd72c9cfad (patch) | |
tree | 5107d7d80c19ad8076c2c97c2b5ef8d1cf3ab903 /framework/src/onos/web/gui/src/main/java/org/onosproject/ui/impl/DeviceViewMessageHandler.java | |
parent | ee93993458266114c29271a481ef9ce7ce621b2a (diff) |
ONOSFW-171
O/S-SFC-ONOS scenario documentation
Change-Id: I51ae1cf736ea24ab6680f8edca1b2bf5dd598365
Signed-off-by: CNlucius <lukai1@huawei.com>
Diffstat (limited to 'framework/src/onos/web/gui/src/main/java/org/onosproject/ui/impl/DeviceViewMessageHandler.java')
-rw-r--r-- | framework/src/onos/web/gui/src/main/java/org/onosproject/ui/impl/DeviceViewMessageHandler.java | 262 |
1 files changed, 0 insertions, 262 deletions
diff --git a/framework/src/onos/web/gui/src/main/java/org/onosproject/ui/impl/DeviceViewMessageHandler.java b/framework/src/onos/web/gui/src/main/java/org/onosproject/ui/impl/DeviceViewMessageHandler.java deleted file mode 100644 index 53b16a65..00000000 --- a/framework/src/onos/web/gui/src/main/java/org/onosproject/ui/impl/DeviceViewMessageHandler.java +++ /dev/null @@ -1,262 +0,0 @@ -/* - * Copyright 2015 Open Networking Laboratory - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.onosproject.ui.impl; - -import com.fasterxml.jackson.databind.node.ArrayNode; -import com.fasterxml.jackson.databind.node.ObjectNode; -import com.google.common.collect.ImmutableSet; -import org.onosproject.mastership.MastershipService; -import org.onosproject.net.AnnotationKeys; -import org.onosproject.net.ConnectPoint; -import org.onosproject.net.Device; -import org.onosproject.net.DeviceId; -import org.onosproject.net.Link; -import org.onosproject.net.Port; -import org.onosproject.net.config.NetworkConfigService; -import org.onosproject.net.config.basics.BasicDeviceConfig; -import org.onosproject.net.device.DeviceService; -import org.onosproject.net.link.LinkService; -import org.onosproject.ui.RequestHandler; -import org.onosproject.ui.UiMessageHandler; -import org.onosproject.ui.table.TableModel; -import org.onosproject.ui.table.TableRequestHandler; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; -import java.util.Set; - -import static com.google.common.base.Strings.emptyToNull; -import static com.google.common.base.Strings.isNullOrEmpty; -import static org.apache.commons.lang.WordUtils.capitalizeFully; -import static org.onosproject.net.DeviceId.deviceId; - -/** - * Message handler for device view related messages. - */ -public class DeviceViewMessageHandler extends UiMessageHandler { - - private static final String DEV_DATA_REQ = "deviceDataRequest"; - private static final String DEV_DATA_RESP = "deviceDataResponse"; - private static final String DEVICES = "devices"; - - private static final String DEV_DETAILS_REQ = "deviceDetailsRequest"; - private static final String DEV_DETAILS_RESP = "deviceDetailsResponse"; - private static final String DETAILS = "details"; - - private static final String DEV_NAME_CHANGE_REQ = "deviceNameChangeRequest"; - private static final String DEV_NAME_CHANGE_RESP = "deviceNameChangeResponse"; - - private static final String ZERO_URI = "of:0000000000000000"; - - private static final String ID = "id"; - private static final String TYPE = "type"; - private static final String AVAILABLE = "available"; - private static final String AVAILABLE_IID = "_iconid_available"; - private static final String TYPE_IID = "_iconid_type"; - private static final String DEV_ICON_PREFIX = "devIcon_"; - private static final String NUM_PORTS = "num_ports"; - private static final String LINK_DEST = "elinks_dest"; - private static final String MFR = "mfr"; - private static final String HW = "hw"; - private static final String SW = "sw"; - private static final String PROTOCOL = "protocol"; - private static final String MASTER_ID = "masterid"; - private static final String CHASSIS_ID = "chassisid"; - private static final String SERIAL = "serial"; - private static final String PORTS = "ports"; - private static final String ENABLED = "enabled"; - private static final String SPEED = "speed"; - private static final String NAME = "name"; - private static final String WARN = "warn"; - - - private static final String[] COL_IDS = { - AVAILABLE, AVAILABLE_IID, TYPE_IID, - NAME, ID, MASTER_ID, NUM_PORTS, MFR, HW, SW, - PROTOCOL, CHASSIS_ID, SERIAL - }; - - private static final String ICON_ID_ONLINE = "active"; - private static final String ICON_ID_OFFLINE = "inactive"; - - private final Logger log = LoggerFactory.getLogger(getClass()); - - - @Override - protected Collection<RequestHandler> createRequestHandlers() { - return ImmutableSet.of( - new DataRequestHandler(), - new NameChangeHandler(), - new DetailRequestHandler() - ); - } - - // Get friendly name of the device from the annotations - private static String deviceName(Device device) { - String name = device.annotations().value(AnnotationKeys.NAME); - return isNullOrEmpty(name) ? device.id().toString() : name; - } - - private static String deviceProtocol(Device device) { - String protocol = device.annotations().value(PROTOCOL); - return protocol != null ? protocol : ""; - } - - private static String getTypeIconId(Device d) { - return DEV_ICON_PREFIX + d.type().toString(); - } - - // handler for device table requests - private final class DataRequestHandler extends TableRequestHandler { - private DataRequestHandler() { - super(DEV_DATA_REQ, DEV_DATA_RESP, DEVICES); - } - - @Override - protected String[] getColumnIds() { - return COL_IDS; - } - - @Override - protected void populateTable(TableModel tm, ObjectNode payload) { - DeviceService ds = get(DeviceService.class); - MastershipService ms = get(MastershipService.class); - for (Device dev : ds.getDevices()) { - populateRow(tm.addRow(), dev, ds, ms); - } - } - - private void populateRow(TableModel.Row row, Device dev, - DeviceService ds, MastershipService ms) { - DeviceId id = dev.id(); - boolean available = ds.isAvailable(id); - String iconId = available ? ICON_ID_ONLINE : ICON_ID_OFFLINE; - - row.cell(ID, id) - .cell(NAME, deviceName(dev)) - .cell(AVAILABLE, available) - .cell(AVAILABLE_IID, iconId) - .cell(TYPE_IID, getTypeIconId(dev)) - .cell(MFR, dev.manufacturer()) - .cell(HW, dev.hwVersion()) - .cell(SW, dev.swVersion()) - .cell(PROTOCOL, deviceProtocol(dev)) - .cell(NUM_PORTS, ds.getPorts(id).size()) - .cell(MASTER_ID, ms.getMasterFor(id)); - } - } - - // handler for selected device detail requests - private final class DetailRequestHandler extends RequestHandler { - private DetailRequestHandler() { - super(DEV_DETAILS_REQ); - } - - @Override - public void process(long sid, ObjectNode payload) { - String id = string(payload, ID, ZERO_URI); - - DeviceId deviceId = deviceId(id); - DeviceService service = get(DeviceService.class); - MastershipService ms = get(MastershipService.class); - Device device = service.getDevice(deviceId); - ObjectNode data = objectNode(); - - data.put(ID, deviceId.toString()); - data.put(NAME, deviceName(device)); - data.put(TYPE, capitalizeFully(device.type().toString())); - data.put(TYPE_IID, getTypeIconId(device)); - data.put(MFR, device.manufacturer()); - data.put(HW, device.hwVersion()); - data.put(SW, device.swVersion()); - data.put(SERIAL, device.serialNumber()); - data.put(CHASSIS_ID, device.chassisId().toString()); - data.put(MASTER_ID, ms.getMasterFor(deviceId).toString()); - data.put(PROTOCOL, deviceProtocol(device)); - - ArrayNode ports = arrayNode(); - - List<Port> portList = new ArrayList<>(service.getPorts(deviceId)); - Collections.sort(portList, (p1, p2) -> { - long delta = p1.number().toLong() - p2.number().toLong(); - return delta == 0 ? 0 : (delta < 0 ? -1 : +1); - }); - - for (Port p : portList) { - ports.add(portData(p, deviceId)); - } - data.set(PORTS, ports); - - ObjectNode rootNode = objectNode(); - rootNode.set(DETAILS, data); - sendMessage(DEV_DETAILS_RESP, 0, rootNode); - } - - private ObjectNode portData(Port p, DeviceId id) { - ObjectNode port = objectNode(); - LinkService ls = get(LinkService.class); - String name = p.annotations().value(AnnotationKeys.PORT_NAME); - - port.put(ID, capitalizeFully(p.number().toString())); - port.put(TYPE, capitalizeFully(p.type().toString())); - port.put(SPEED, p.portSpeed()); - port.put(ENABLED, p.isEnabled()); - port.put(NAME, name != null ? name : ""); - - Set<Link> links = ls.getEgressLinks(new ConnectPoint(id, p.number())); - if (!links.isEmpty()) { - StringBuilder egressLinks = new StringBuilder(); - for (Link l : links) { - ConnectPoint dest = l.dst(); - egressLinks.append(dest.elementId()).append("/") - .append(dest.port()).append(" "); - } - port.put(LINK_DEST, egressLinks.toString()); - } - - return port; - } - } - - - // handler for changing device friendly name - private final class NameChangeHandler extends RequestHandler { - private NameChangeHandler() { - super(DEV_NAME_CHANGE_REQ); - } - - @Override - public void process(long sid, ObjectNode payload) { - DeviceId deviceId = deviceId(string(payload, ID, ZERO_URI)); - String name = emptyToNull(string(payload, NAME, null)); - log.debug("Name change request: {} -- '{}'", deviceId, name); - - NetworkConfigService service = get(NetworkConfigService.class); - BasicDeviceConfig cfg = - service.addConfig(deviceId, BasicDeviceConfig.class); - - // Name attribute missing from the payload (or empty string) - // means that the friendly name should be unset. - cfg.name(name); - cfg.apply(); - sendMessage(DEV_NAME_CHANGE_RESP, 0, payload); - } - } -} |