Switch to JDT annotations for Nullable and NonNull
[netvirt.git] / dhcpservice / shell / src / main / java / org / opendaylight / netvirt / dhcpservice / shell / DhcpCacheCli.java
1 /*
2  * Copyright (c) 2018 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.netvirt.dhcpservice.shell;
9
10 import org.apache.karaf.shell.commands.Command;
11 import org.apache.karaf.shell.console.OsgiCommandSupport;
12 import org.eclipse.jdt.annotation.Nullable;
13 import org.opendaylight.netvirt.dhcpservice.api.IDhcpExternalTunnelManager;
14 import org.slf4j.Logger;
15 import org.slf4j.LoggerFactory;
16
17 @Command(scope = "dhcp", name = "show-cache", description = "Displays dhcp cache")
18 public class DhcpCacheCli extends OsgiCommandSupport {
19
20     private static final Logger LOG = LoggerFactory.getLogger(DhcpCacheCli.class);
21     private IDhcpExternalTunnelManager dhcpExternalTunnelManager;
22
23     public void setDhcpExternalTunnelManager(IDhcpExternalTunnelManager dhcpExternalTunnelManager) {
24         this.dhcpExternalTunnelManager = dhcpExternalTunnelManager;
25     }
26
27     @Override
28     @Nullable
29     protected Object doExecute() {
30         session.getConsole().println("Printing Designated Dpns To TunnelIp and ElanName cache "
31                 + "(DesignatedDpnsToTunnelIpElanNameCache)");
32         dhcpExternalTunnelManager.getDesignatedDpnsToTunnelIpElanNameCache().forEach(
33             (dpnId, tunnelIpAndElanName) -> {
34                 session.getConsole().println("   DPN id : " + print(dpnId));
35                 tunnelIpAndElanName.forEach(item -> {
36                     session.getConsole().println("       Ip address : " + print(item.getLeft()));
37                     session.getConsole().println("       Elan name : " + print(item.getRight()));
38                 });
39             }
40         );
41         session.getConsole().println();
42         session.getConsole().println("Printing TunnelIp and ElanName To VmMac Cache "
43                 + "(tunnelIpElanNameToVmMacCache)");
44         dhcpExternalTunnelManager.getTunnelIpElanNameToVmMacCache().forEach(
45             (tunnelIpAndElanName, vmMac) -> {
46                 session.getConsole().println("   Tunnel Ip Address : " + print(tunnelIpAndElanName.getLeft()));
47                 session.getConsole().println("   Elan Name : " + print(tunnelIpAndElanName));
48                 vmMac.forEach(item -> session.getConsole().println("        VM Macs : " + print(item)));
49             }
50         );
51         session.getConsole().println();
52         session.getConsole().println("Printing available Vm Cache (availableVMCache)");
53         dhcpExternalTunnelManager.getAvailableVMCache().forEach(
54             (tunnelIpAndElanName, availableVm) -> {
55                 session.getConsole().println("   Tunnel Ip Address : " + print(tunnelIpAndElanName.getLeft()));
56                 session.getConsole().println("   Elan Name : " + print(tunnelIpAndElanName.getRight()));
57                 availableVm.forEach(item -> session.getConsole().println("        VM Macs : " + print(item)));
58             }
59         );
60         session.getConsole().println();
61         session.getConsole().println("Vni and Mac addresses to Port cache (VniMacAddressToPortCache)");
62         dhcpExternalTunnelManager.getVniMacAddressToPortCache().forEach(
63             (vniAndMac, port) -> {
64                 session.getConsole().println("   VNI : " + print(vniAndMac.getLeft()));
65                 session.getConsole().println("   Mac address : " + print(vniAndMac.getRight()));
66                 session.getConsole().println("   Port : " + print(port));
67             }
68         );
69         return null;
70     }
71
72     Object print(Object input) {
73         return input != null ? input : " ";
74     }
75 }