Adds a CLI to show/clear cached openstack states with neutron DB

Change-Id: I270c27affc669d10236ce94ec7a546a4f85aea88
diff --git a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/OpenstackSyncStateCommand.java b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/OpenstackSyncStateCommand.java
index 5d3001d..29d167f 100644
--- a/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/OpenstackSyncStateCommand.java
+++ b/apps/openstacknetworking/app/src/main/java/org/onosproject/openstacknetworking/cli/OpenstackSyncStateCommand.java
@@ -15,7 +15,6 @@
  */
 package org.onosproject.openstacknetworking.cli;
 
-import com.google.common.base.Strings;
 import org.apache.karaf.shell.api.action.Command;
 import org.apache.karaf.shell.api.action.lifecycle.Service;
 import org.onosproject.cli.AbstractShellCommand;
@@ -26,21 +25,25 @@
 import org.onosproject.openstacknode.api.OpenstackNode;
 import org.onosproject.openstacknode.api.OpenstackNodeService;
 import org.openstack4j.api.OSClient;
-import org.openstack4j.model.network.IP;
-import org.openstack4j.model.network.NetFloatingIP;
-import org.openstack4j.model.network.Network;
-import org.openstack4j.model.network.Port;
-import org.openstack4j.model.network.Router;
-import org.openstack4j.model.network.Subnet;
 
 import java.util.HashMap;
-import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Optional;
-import java.util.stream.Collectors;
 
+import static org.onosproject.openstacknetworking.api.Constants.FLOATING_IP_FORMAT;
+import static org.onosproject.openstacknetworking.api.Constants.NETWORK_FORMAT;
+import static org.onosproject.openstacknetworking.api.Constants.PORT_FORMAT;
+import static org.onosproject.openstacknetworking.api.Constants.ROUTER_FORMAT;
+import static org.onosproject.openstacknetworking.api.Constants.SECURITY_GROUP_FORMAT;
+import static org.onosproject.openstacknetworking.api.Constants.SUBNET_FORMAT;
 import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.addRouterIface;
+import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.printFloatingIp;
+import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.printNetwork;
+import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.printPort;
+import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.printRouter;
+import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.printSecurityGroup;
+import static org.onosproject.openstacknetworking.util.OpenstackNetworkingUtil.printSubnet;
 import static org.onosproject.openstacknode.api.OpenstackNode.NodeType.CONTROLLER;
 
 /**
@@ -51,13 +54,6 @@
         description = "Synchronizes all OpenStack network states")
 public class OpenstackSyncStateCommand extends AbstractShellCommand {
 
-    private static final String SECURITY_GROUP_FORMAT = "%-40s%-20s";
-    private static final String NETWORK_FORMAT = "%-40s%-20s%-20s%-8s";
-    private static final String SUBNET_FORMAT = "%-40s%-20s%-20s";
-    private static final String PORT_FORMAT = "%-40s%-20s%-20s%-8s";
-    private static final String ROUTER_FORMAT = "%-40s%-20s%-20s%-8s";
-    private static final String FLOATING_IP_FORMAT = "%-40s%-20s%-20s";
-
     private static final String DEVICE_OWNER_GW = "network:router_gateway";
     private static final String DEVICE_OWNER_IFACE = "network:router_interface";
 
@@ -98,7 +94,7 @@
             } else {
                 osSgAdminService.createSecurityGroup(osSg);
             }
-            print(SECURITY_GROUP_FORMAT, osSg.getId(), osSg.getName());
+            printSecurityGroup(osSg);
         });
 
 
@@ -165,65 +161,4 @@
             printFloatingIp(osFloating);
         });
     }
-
-    private void printNetwork(Network osNet) {
-        final String strNet = String.format(NETWORK_FORMAT,
-                osNet.getId(),
-                osNet.getName(),
-                osNet.getProviderSegID(),
-                osNet.getSubnets());
-        print(strNet);
-    }
-
-    private void printSubnet(Subnet osSubnet, OpenstackNetworkAdminService osNetService) {
-        final String strSubnet = String.format(SUBNET_FORMAT,
-                osSubnet.getId(),
-                osNetService.network(osSubnet.getNetworkId()).getName(),
-                osSubnet.getCidr());
-        print(strSubnet);
-    }
-
-    private void printPort(Port osPort, OpenstackNetworkAdminService osNetService) {
-        List<String> fixedIps = osPort.getFixedIps().stream()
-                .map(IP::getIpAddress)
-                .collect(Collectors.toList());
-        final String strPort = String.format(PORT_FORMAT,
-                osPort.getId(),
-                osNetService.network(osPort.getNetworkId()).getName(),
-                osPort.getMacAddress(),
-                fixedIps.isEmpty() ? "" : fixedIps);
-        print(strPort);
-    }
-
-    private void printRouter(Router osRouter, OpenstackNetworkAdminService osNetService) {
-        List<String> externals = osNetService.ports().stream()
-                .filter(osPort -> Objects.equals(osPort.getDeviceId(), osRouter.getId()) &&
-                        Objects.equals(osPort.getDeviceOwner(), DEVICE_OWNER_GW))
-                .flatMap(osPort -> osPort.getFixedIps().stream())
-                .map(IP::getIpAddress)
-                .collect(Collectors.toList());
-
-        List<String> internals = osNetService.ports().stream()
-                .filter(osPort -> Objects.equals(osPort.getDeviceId(), osRouter.getId()) &&
-                        Objects.equals(osPort.getDeviceOwner(), DEVICE_OWNER_IFACE))
-                .flatMap(osPort -> osPort.getFixedIps().stream())
-                .map(IP::getIpAddress)
-                .collect(Collectors.toList());
-
-        final String strRouter = String.format(ROUTER_FORMAT,
-                osRouter.getId(),
-                osRouter.getName(),
-                externals.isEmpty() ? "" : externals,
-                internals.isEmpty() ? "" : internals);
-        print(strRouter);
-    }
-
-    private void printFloatingIp(NetFloatingIP floatingIp) {
-        final String strFloating = String.format(FLOATING_IP_FORMAT,
-                floatingIp.getId(),
-                floatingIp.getFloatingIpAddress(),
-                Strings.isNullOrEmpty(floatingIp.getFixedIpAddress()) ?
-                        "" : floatingIp.getFixedIpAddress());
-        print(strFloating);
-    }
 }