Merge "L2 Gw create changes related to ITM Tunnels creation in neutronvpn module"
[vpnservice.git] / interfacemgr / interfacemgr-shell / src / main / java / org / opendaylight / vpnservice / interfacemgr / shell / IfmCLIUtil.java
1 /*
2  * Copyright (c) 2016 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.vpnservice.interfacemgr.shell;
9
10 import org.opendaylight.vpnservice.interfacemgr.globals.InterfaceInfo;
11 import org.opendaylight.vpnservice.interfacemgr.globals.InterfaceInfo.InterfaceOpState;
12 import org.opendaylight.vpnservice.interfacemgr.globals.VlanInterfaceInfo;
13 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.interfaces.rev140508.interfaces.Interface;
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.rev150331.IfL2vlan;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.rev150331.IfTunnel;
16 import org.opendaylight.yang.gen.v1.urn.opendaylight.vpnservice.interfacemgr.rev150331.ParentRefs;
17
18 import java.util.Formatter;
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() {
28         StringBuilder sb = new StringBuilder();
29         Formatter fmt = new Formatter(sb);
30         System.out.println(fmt.format(VLAN_OUTPUT_FORMAT_LINE1, "Name"));
31         sb.setLength(0);
32         System.out.println(fmt.format(VLAN_OUTPUT_FORMAT, "", "Dpn", "PortName",
33                 "Vlan-Id"));
34         sb.setLength(0);
35         System.out.println(fmt.format(VLAN_OUTPUT_FORMAT, "Tag", "PortNo",
36                 "AdmState", "OpState"));
37         sb.setLength(0);
38         System.out.println(fmt.format(VLAN_OUTPUT_FORMAT, "Description", "", "", ""));
39         sb.setLength(0);
40         System.out.println(fmt.format("--------------------------------------------------------------------------------"));
41         sb.setLength(0);
42         fmt.close();
43     }
44
45     public static void showVlanOutput(InterfaceInfo ifaceInfo, Interface iface) {
46         StringBuilder sb = new StringBuilder();
47         Formatter fmt = new Formatter(sb);
48         IfL2vlan l2vlan = iface.getAugmentation(IfL2vlan.class);
49         int vlanId = l2vlan != null ? l2vlan.getVlanId() != null ? l2vlan.getVlanId().getValue() : 0 : 0;
50         System.out.println(fmt.format(VLAN_OUTPUT_FORMAT_LINE1,
51                 iface.getName()));
52         sb.setLength(0);
53         System.out.println(fmt.format(VLAN_OUTPUT_FORMAT,
54                 "", (ifaceInfo == null) ? UNSET : ifaceInfo.getDpId(),
55                 (ifaceInfo == null) ? UNSET : ifaceInfo.getPortName(), vlanId));
56         sb.setLength(0);
57         System.out.println(fmt.format(VLAN_OUTPUT_FORMAT,
58                 (ifaceInfo == null) ? UNSET : ifaceInfo.getInterfaceTag(),
59                 (ifaceInfo == null) ? UNSET  : ifaceInfo.getPortNo(),
60                 (ifaceInfo == null) ? UNSET : ifaceInfo.getAdminState(),
61                 (ifaceInfo == null) ? UNSET : ifaceInfo.getOpState()));
62         sb.setLength(0);
63         System.out.println(fmt.format(VLAN_OUTPUT_FORMAT + "\n",
64                 iface.getDescription(), "", "", ""));
65         sb.setLength(0);
66         fmt.close();
67     }
68
69     public static void showVxlanHeaderOutput() {
70         StringBuilder sb = new StringBuilder();
71         Formatter fmt = new Formatter(sb);
72         System.out.println(fmt
73                 .format(VXLAN_OUTPUT_FORMAT_LINE1, "Name", "Description"));
74         sb.setLength(0);
75         System.out.println(fmt.format(VXLAN_OUTPUT_FORMAT, "Local IP",
76                 "Remote IP", "Gateway IP", "AdmState"));
77         sb.setLength(0);
78         System.out.println(fmt.format(VXLAN_OUTPUT_FORMAT, "OpState", "Parent",
79                 "Tag", ""));
80         sb.setLength(0);
81         System.out.println(fmt
82                 .format("--------------------------------------------------------------------------------"));
83         fmt.close();
84     }
85
86     public static void showVxlanOutput(Interface iface, InterfaceInfo interfaceInfo) {
87         StringBuilder sb = new StringBuilder();
88         Formatter fmt = new Formatter(sb);
89         System.out.println(fmt.format(VXLAN_OUTPUT_FORMAT_LINE1,
90                 iface.getName(),
91                 iface.getDescription() == null ? UNSET : iface.getDescription()));
92         sb.setLength(0);
93         IfTunnel ifTunnel = iface.getAugmentation(IfTunnel.class);
94         System.out.println(fmt.format(VXLAN_OUTPUT_FORMAT,
95                 ifTunnel.getTunnelSource().getIpv4Address().getValue(),
96                 ifTunnel.getTunnelDestination().getIpv4Address().getValue(),
97                 ifTunnel.getTunnelGateway() == null ? UNSET : ifTunnel.getTunnelGateway().getIpv4Address().getValue(),
98                 (interfaceInfo == null) ? UNSET : interfaceInfo.getAdminState()));
99         sb.setLength(0);
100         ParentRefs parentRefs = iface.getAugmentation(ParentRefs.class);
101         System.out.println(fmt.format(VXLAN_OUTPUT_FORMAT + "\n",
102                 (interfaceInfo == null) ? UNSET : interfaceInfo.getOpState(),
103                 String.format("%s/%s", parentRefs.getDatapathNodeIdentifier(),
104                 parentRefs.getParentInterface()),
105                 (interfaceInfo == null) ? UNSET : interfaceInfo.getInterfaceTag(), ""));
106         fmt.close();
107     }
108 }