OpenstackRouting refactoring

- Replace OpenstackPortInfo with HostService
- Replace OpenstackRoutingConfig with OpenstackNodeService
  (Remove OpenstackRoutingConfig)
- Rebased with 10330 (existing_vm)
- Added initialization process using OpenstackNodeListener

Change-Id: If2ce8eb86d242a7180c9154e1a0f1668b266bf1c
diff --git a/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackSwitchingManager.java b/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackSwitchingManager.java
index 5388e9b..55fce2c 100644
--- a/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackSwitchingManager.java
+++ b/apps/openstacknetworking/switching/src/main/java/org/onosproject/openstacknetworking/switching/OpenstackSwitchingManager.java
@@ -16,7 +16,6 @@
 package org.onosproject.openstacknetworking.switching;
 
 import com.google.common.base.Strings;
-import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
 import org.apache.felix.scr.annotations.Activate;
 import org.apache.felix.scr.annotations.Component;
@@ -27,7 +26,6 @@
 import org.onlab.packet.Ip4Address;
 import org.onlab.packet.IpPrefix;
 import org.onlab.packet.VlanId;
-import org.onlab.util.Tools;
 import org.onosproject.core.CoreService;
 import org.onosproject.dhcp.DhcpService;
 import org.onosproject.dhcp.IpAssignment;
@@ -54,8 +52,6 @@
 import org.onosproject.openstackinterface.OpenstackNetwork;
 import org.onosproject.openstackinterface.OpenstackPort;
 import org.onosproject.openstackinterface.OpenstackSubnet;
-import org.onosproject.openstacknetworking.OpenstackPortInfo;
-import org.onosproject.openstacknetworking.OpenstackSwitchingService;
 import org.onosproject.openstacknode.OpenstackNode;
 import org.onosproject.openstacknode.OpenstackNodeEvent;
 import org.onosproject.openstacknode.OpenstackNodeListener;
@@ -64,7 +60,6 @@
 import org.slf4j.LoggerFactory;
 
 import java.util.Date;
-import java.util.Map;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
@@ -74,7 +69,7 @@
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
 import static org.onosproject.net.AnnotationKeys.PORT_NAME;
-import static org.onosproject.openstacknetworking.switching.Constants.*;
+import static org.onosproject.openstacknetworking.Constants.*;
 
 @Service
 @Component(immediate = true)
@@ -82,7 +77,7 @@
  * Populates forwarding rules for VMs created by Openstack.
  */
 public final class OpenstackSwitchingManager extends AbstractProvider
-        implements OpenstackSwitchingService, HostProvider {
+        implements HostProvider {
 
     private final Logger log = LoggerFactory.getLogger(getClass());
 
@@ -153,41 +148,6 @@
         // no probe is required
     }
 
-    @Override
-    // TODO remove this and openstackPortInfo
-    public Map<String, OpenstackPortInfo> openstackPortInfo() {
-        Map<String, OpenstackPortInfo> portInfoMap = Maps.newHashMap();
-
-        Tools.stream(hostService.getHosts()).filter(this::isValidHost).forEach(host -> {
-            Port port = deviceService.getPort(
-                    host.location().deviceId(),
-                    host.location().port());
-
-            OpenstackPortInfo portInfo = OpenstackPortInfo.builder()
-                    .setDeviceId(host.location().deviceId())
-                    .setHostMac(host.mac())
-                    .setNetworkId(host.annotations().value(NETWORK_ID))
-                    .setGatewayIP(Ip4Address.valueOf(host.annotations().value(GATEWAY_IP)))
-                    .setVni(Long.valueOf(host.annotations().value(VXLAN_ID)))
-                    .setHostIp(host.ipAddresses().stream().findFirst().get().getIp4Address())
-                    .build();
-
-            portInfoMap.put(port.annotations().value(PORT_NAME), portInfo);
-        });
-
-        return portInfoMap;
-    }
-
-    // TODO remove this and openstackPortInfo
-    private boolean isValidHost(Host host) {
-        return !host.ipAddresses().isEmpty() &&
-                host.annotations().value(VXLAN_ID) != null &&
-                host.annotations().value(NETWORK_ID) != null &&
-                host.annotations().value(TENANT_ID) != null &&
-                host.annotations().value(GATEWAY_IP) != null &&
-                host.annotations().value(PORT_ID) != null;
-    }
-
     private void processPortAdded(Port port) {
         // TODO check the node state is COMPLETE
         OpenstackPort osPort = openstackService.port(port);