BUG 8080: IPv6 CSIT is failing
[genius.git] / interfacemanager / interfacemanager-shell / src / main / java / org / opendaylight / genius / interfacemanager / shell / IfmCLIUtil.java
1 /*
2  * Copyright (c) 2016 - 2017 Ericsson India Global Services Pvt Ltd. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.genius.interfacemanager.shell;
9
10 import java.util.Formatter;
11
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;
19
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";
26
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"));
31         sb.setLength(0);
32         session.getConsole().println(fmt.format(VLAN_OUTPUT_FORMAT, "", "Dpn", "PortName",
33                 "Vlan-Id"));
34         sb.setLength(0);
35         session.getConsole().println(fmt.format(VLAN_OUTPUT_FORMAT, "Tag", "PortNo",
36                 "AdmState", "OpState"));
37         sb.setLength(0);
38         session.getConsole().println(fmt.format(VLAN_OUTPUT_FORMAT, "Description", "", "", ""));
39         sb.setLength(0);
40         session.getConsole().println(fmt
41             .format("--------------------------------------------------------------------------------"));
42         sb.setLength(0);
43         fmt.close();
44     }
45
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,
52                 iface.getName()));
53         sb.setLength(0);
54         session.getConsole().println(fmt.format(VLAN_OUTPUT_FORMAT,
55                 "", ifaceInfo == null ? UNSET : ifaceInfo.getDpId(),
56                 ifaceInfo == null ? UNSET : ifaceInfo.getPortName(), vlanId));
57         sb.setLength(0);
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()));
63         sb.setLength(0);
64         session.getConsole().println(fmt.format(VLAN_OUTPUT_FORMAT + "\n",
65                 iface.getDescription(), "", "", ""));
66         sb.setLength(0);
67         fmt.close();
68     }
69
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"));
75         sb.setLength(0);
76         session.getConsole().println(fmt.format(VXLAN_OUTPUT_FORMAT, "Local IP",
77                 "Remote IP", "Gateway IP", "AdmState"));
78         sb.setLength(0);
79         session.getConsole().println(fmt.format(VXLAN_OUTPUT_FORMAT, "OpState", "Parent",
80                 "Tag", ""));
81         sb.setLength(0);
82         session.getConsole().println(fmt
83                 .format("--------------------------------------------------------------------------------"));
84         fmt.close();
85     }
86
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,
91                 iface.getName(),
92                 iface.getDescription() == null ? UNSET : iface.getDescription()));
93         sb.setLength(0);
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()));
100         sb.setLength(0);
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(),
105                         iface.getName()),
106                 interfaceInfo == null ? UNSET : interfaceInfo.getInterfaceTag(), ""));
107         fmt.close();
108     }
109 }