2 * Copyright (c) 2016 - 2017 Ericsson India Global Services Pvt Ltd. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.genius.interfacemanager.shell;
10 import java.util.Formatter;
12 import org.apache.felix.service.command.CommandSession;
13 import org.opendaylight.genius.interfacemanager.globals.InterfaceInfo;
14 import org.opendaylight.genius.interfacemanager.globals.InterfaceInfo.InterfaceOpState;
15 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.IfL2vlan;
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.IfTunnel;
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.genius.interfacemanager.rev160406.ParentRefs;
20 public class IfmCLIUtil {
21 private static final String VLAN_OUTPUT_FORMAT_LINE1 = "%-55s";
22 private static final String VLAN_OUTPUT_FORMAT = "%-24s %-20s %-15s %-24s";
23 private static final String VXLAN_OUTPUT_FORMAT = "%-24s %-24s %-18s %-5s";
24 private static final String VXLAN_OUTPUT_FORMAT_LINE1 = "%-49s %-45s";
25 private static final String UNSET = "N/A";
27 public static void showVlanHeaderOutput(CommandSession session) {
28 StringBuilder sb = new StringBuilder();
29 Formatter fmt = new Formatter(sb);
30 session.getConsole().println(fmt.format(VLAN_OUTPUT_FORMAT_LINE1, "Name"));
32 session.getConsole().println(fmt.format(VLAN_OUTPUT_FORMAT, "", "Dpn", "PortName",
35 session.getConsole().println(fmt.format(VLAN_OUTPUT_FORMAT, "Tag", "PortNo",
36 "AdmState", "OpState"));
38 session.getConsole().println(fmt.format(VLAN_OUTPUT_FORMAT, "Description", "", "", ""));
40 session.getConsole().println(fmt
41 .format("--------------------------------------------------------------------------------"));
46 public static void showVlanOutput(InterfaceInfo ifaceInfo, Interface iface, CommandSession session) {
47 StringBuilder sb = new StringBuilder();
48 Formatter fmt = new Formatter(sb);
49 IfL2vlan l2vlan = iface.getAugmentation(IfL2vlan.class);
50 int vlanId = l2vlan != null ? l2vlan.getVlanId() != null ? l2vlan.getVlanId().getValue() : 0 : 0;
51 session.getConsole().println(fmt.format(VLAN_OUTPUT_FORMAT_LINE1,
54 session.getConsole().println(fmt.format(VLAN_OUTPUT_FORMAT,
55 "", ifaceInfo == null ? UNSET : ifaceInfo.getDpId(),
56 ifaceInfo == null ? UNSET : ifaceInfo.getPortName(), vlanId));
58 session.getConsole().println(fmt.format(VLAN_OUTPUT_FORMAT,
59 ifaceInfo == null ? UNSET : ifaceInfo.getInterfaceTag(),
60 ifaceInfo == null ? UNSET : ifaceInfo.getPortNo(),
61 ifaceInfo == null ? UNSET : ifaceInfo.getAdminState(),
62 ifaceInfo == null ? UNSET : ifaceInfo.getOpState()));
64 session.getConsole().println(fmt.format(VLAN_OUTPUT_FORMAT + "\n",
65 iface.getDescription(), "", "", ""));
70 public static void showVxlanHeaderOutput(CommandSession session) {
71 StringBuilder sb = new StringBuilder();
72 Formatter fmt = new Formatter(sb);
73 session.getConsole().println(fmt
74 .format(VXLAN_OUTPUT_FORMAT_LINE1, "Name", "Description"));
76 session.getConsole().println(fmt.format(VXLAN_OUTPUT_FORMAT, "Local IP",
77 "Remote IP", "Gateway IP", "AdmState"));
79 session.getConsole().println(fmt.format(VXLAN_OUTPUT_FORMAT, "OpState", "Parent",
82 session.getConsole().println(fmt
83 .format("--------------------------------------------------------------------------------"));
87 public static void showVxlanOutput(Interface iface, InterfaceInfo interfaceInfo, CommandSession session) {
88 StringBuilder sb = new StringBuilder();
89 Formatter fmt = new Formatter(sb);
90 session.getConsole().println(fmt.format(VXLAN_OUTPUT_FORMAT_LINE1,
92 iface.getDescription() == null ? UNSET : iface.getDescription()));
94 IfTunnel ifTunnel = iface.getAugmentation(IfTunnel.class);
95 session.getConsole().println(fmt.format(VXLAN_OUTPUT_FORMAT,
96 new String(ifTunnel.getTunnelSource().getValue()),
97 new String(ifTunnel.getTunnelDestination().getValue()),
98 ifTunnel.getTunnelGateway() == null ? UNSET : new String(ifTunnel.getTunnelGateway().getValue()),
99 interfaceInfo == null ? InterfaceInfo.InterfaceAdminState.DISABLED : interfaceInfo.getAdminState()));
101 ParentRefs parentRefs = iface.getAugmentation(ParentRefs.class);
102 session.getConsole().println(fmt.format(VXLAN_OUTPUT_FORMAT + "\n",
103 interfaceInfo == null ? InterfaceOpState.DOWN : interfaceInfo.getOpState(),
104 String.format("%s/%s", parentRefs.getDatapathNodeIdentifier(),
106 interfaceInfo == null ? UNSET : interfaceInfo.getInterfaceTag(), ""));