Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2014 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 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";
 
     @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 ( == null) {
             if (outputJson()) {
                 print("%s"jsonPorts(servicegetSortedDevices(service)));
             } else {
                 for (Device device : getSortedDevices(service)) {
                     printDevice(servicedevice);
                 }
             }
 
         } else {
             Device device = service.getDevice(deviceId());
             if (device == null) {
                 error("No such device %s");
             } else if (outputJson()) {
                 print("%s"jsonPorts(servicenew ObjectMapper(), device));
             } else {
                 printDevice(servicedevice);
             }
         }
     }

    
Produces JSON array containing ports of the specified devices.

Parameters:
service device service
devices collection of devices
Returns:
JSON array
 
     public JsonNode jsonPorts(DeviceService serviceIterable<Devicedevices) {
         ObjectMapper mapper = new ObjectMapper();
         ArrayNode result = mapper.createArrayNode();
         for (Device device : devices) {
             result.add(jsonPorts(servicemapperdevice));
         }
         return result;
     }

    
Produces JSON array containing ports of the specified device.

Parameters:
service device service
mapper object mapper
device infrastructure devices
Returns:
JSON array
    public JsonNode jsonPorts(DeviceService serviceObjectMapper mapperDevice 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(mapperport.annotations())));
            }
        }
        result.set("device"json(servicemapperdevice));
        result.set("ports"ports);
        return result;
    }
    private String portName(PortNumber port) {
        return port.equals(.) ? "local" : port.toString();
    }
    // Determines if a port should be included in output.
    private boolean isIncluded(Port port) {
        return  && port.isEnabled() ||  && !port.isEnabled() ||
                ! && !;
    }
    @Override
    protected void printDevice(DeviceService serviceDevice device) {
        super.printDevice(servicedevice);
        List<Portports = new ArrayList<>(service.getPorts(device.id()));
        Collections.sort(ports.);
        for (Port port : ports) {
            if (isIncluded(port)) {
                print(portName(port.number()),
                      port.isEnabled() ? "enabled" : "disabled",
                      port.type().toString().toLowerCase(), port.portSpeed(),
                      annotations(port.annotations()));
            }
        }
    }
New to GrepCode? Check out our FAQ X