diff options
Diffstat (limited to 'framework/src/onos/cli/src/main/java/org/onosproject/cli/net/DevicePortsListCommand.java')
-rw-r--r-- | framework/src/onos/cli/src/main/java/org/onosproject/cli/net/DevicePortsListCommand.java | 177 |
1 files changed, 0 insertions, 177 deletions
diff --git a/framework/src/onos/cli/src/main/java/org/onosproject/cli/net/DevicePortsListCommand.java b/framework/src/onos/cli/src/main/java/org/onosproject/cli/net/DevicePortsListCommand.java deleted file mode 100644 index e2d3e6d6..00000000 --- a/framework/src/onos/cli/src/main/java/org/onosproject/cli/net/DevicePortsListCommand.java +++ /dev/null @@ -1,177 +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.cli.net; - -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.node.ArrayNode; -import com.fasterxml.jackson.databind.node.ObjectNode; -import org.apache.karaf.shell.commands.Argument; -import org.apache.karaf.shell.commands.Command; -import org.apache.karaf.shell.commands.Option; -import org.onlab.util.Frequency; -import org.onosproject.cli.Comparators; -import org.onosproject.net.Device; -import org.onosproject.net.OchPort; -import org.onosproject.net.OduCltPort; -import org.onosproject.net.OmsPort; -import org.onosproject.net.Port; -import org.onosproject.net.PortNumber; -import org.onosproject.net.device.DeviceService; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -import static org.onosproject.net.DeviceId.deviceId; - -/** - * Lists all ports or all ports of a device. - */ -@Command(scope = "onos", name = "ports", - description = "Lists all ports or all ports of a device") -public class DevicePortsListCommand extends DevicesListCommand { - - private static final String FMT = " port=%s, state=%s, type=%s, speed=%s %s"; - private static final String FMT_OCH = " port=%s, state=%s, type=%s, signalType=%s, isTunable=%s %s"; - private static final String FMT_ODUCLT = " port=%s, state=%s, type=%s, signalType=%s %s"; - private static final String FMT_OMS = " port=%s, state=%s, type=%s, Freqs= %s / %s / %s GHz, totalChannels=%s %s"; - - @Option(name = "-e", aliases = "--enabled", description = "Show only enabled ports", - required = false, multiValued = false) - private boolean enabled = false; - - @Option(name = "-d", aliases = "--disabled", description = "Show only disabled ports", - required = false, multiValued = false) - private boolean disabled = false; - - @Argument(index = 0, name = "uri", description = "Device ID", - required = false, multiValued = false) - String uri = null; - - @Override - protected void execute() { - DeviceService service = get(DeviceService.class); - if (uri == null) { - if (outputJson()) { - print("%s", jsonPorts(service, getSortedDevices(service))); - } else { - for (Device device : getSortedDevices(service)) { - printDevice(service, device); - } - } - - } else { - Device device = service.getDevice(deviceId(uri)); - if (device == null) { - error("No such device %s", uri); - } else if (outputJson()) { - print("%s", jsonPorts(service, new ObjectMapper(), device)); - } else { - printDevice(service, device); - } - } - } - - /** - * Produces JSON array containing ports of the specified devices. - * - * @param service device service - * @param devices collection of devices - * @return JSON array - */ - public JsonNode jsonPorts(DeviceService service, Iterable<Device> devices) { - ObjectMapper mapper = new ObjectMapper(); - ArrayNode result = mapper.createArrayNode(); - for (Device device : devices) { - result.add(jsonPorts(service, mapper, device)); - } - return result; - } - - /** - * Produces JSON array containing ports of the specified device. - * - * @param service device service - * @param mapper object mapper - * @param device infrastructure devices - * @return JSON array - */ - public JsonNode jsonPorts(DeviceService service, ObjectMapper mapper, Device device) { - ObjectNode result = mapper.createObjectNode(); - ArrayNode ports = mapper.createArrayNode(); - for (Port port : service.getPorts(device.id())) { - if (isIncluded(port)) { - ports.add(mapper.createObjectNode() - .put("port", portName(port.number())) - .put("isEnabled", port.isEnabled()) - .put("type", port.type().toString().toLowerCase()) - .put("portSpeed", port.portSpeed()) - .set("annotations", annotations(mapper, port.annotations()))); - } - } - result.set("device", jsonForEntity(device, Device.class)); - result.set("ports", ports); - return result; - } - - private String portName(PortNumber port) { - return port.equals(PortNumber.LOCAL) ? "local" : port.toString(); - } - - // Determines if a port should be included in output. - private boolean isIncluded(Port port) { - return enabled && port.isEnabled() || disabled && !port.isEnabled() || - !enabled && !disabled; - } - - @Override - protected void printDevice(DeviceService service, Device device) { - super.printDevice(service, device); - List<Port> ports = new ArrayList<>(service.getPorts(device.id())); - Collections.sort(ports, Comparators.PORT_COMPARATOR); - for (Port port : ports) { - if (!isIncluded(port)) { - continue; - } - String portName = portName(port.number()); - Object portIsEnabled = port.isEnabled() ? "enabled" : "disabled"; - String portType = port.type().toString().toLowerCase(); - String annotations = annotations(port.annotations()); - switch (port.type()) { - case OCH: - print(FMT_OCH, portName, portIsEnabled, portType, - ((OchPort) port).signalType().toString(), - ((OchPort) port).isTunable() ? "yes" : "no", annotations); - break; - case ODUCLT: - print(FMT_ODUCLT, portName, portIsEnabled, portType, - ((OduCltPort) port).signalType().toString(), annotations); - break; - case OMS: - print(FMT_OMS, portName, portIsEnabled, portType, - ((OmsPort) port).minFrequency().asHz() / Frequency.ofGHz(1).asHz(), - ((OmsPort) port).maxFrequency().asHz() / Frequency.ofGHz(1).asHz(), - ((OmsPort) port).grid().asHz() / Frequency.ofGHz(1).asHz(), - ((OmsPort) port).totalChannels(), annotations); - break; - default: - print(FMT, portName, portIsEnabled, portType, port.portSpeed(), annotations); - break; - } - } - } -} |