Implement kubevirt router store, manager and codec with unit tests

Change-Id: Ib93a71326aa35b4817f0e6b6c97d5f57b26fe470
diff --git a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtRouter.java b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtRouter.java
index c10116f..e9f5e88 100644
--- a/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtRouter.java
+++ b/apps/kubevirt-networking/api/src/main/java/org/onosproject/kubevirtnetworking/api/KubevirtRouter.java
@@ -15,8 +15,6 @@
  */
 package org.onosproject.kubevirtnetworking.api;
 
-import org.onlab.packet.IpAddress;
-
 import java.util.Map;
 import java.util.Set;
 
@@ -59,7 +57,7 @@
      *
      * @return external network paired with external router IP address
      */
-    Map<IpAddress, String> external();
+    Map<String, String> external();
 
     /**
      * Returns external peer router.
@@ -68,6 +66,14 @@
      */
     KubevirtPeerRouter peerRouter();
 
+    /**
+     * Updates the peer router.
+     *
+     * @param updated updated peer router
+     * @return kubevirt router with the updated peer router
+     */
+    KubevirtRouter updatePeerRouter(KubevirtPeerRouter updated);
+
     interface Builder {
 
         /**
@@ -115,7 +121,7 @@
          * @param external external network with IP
          * @return router builder
          */
-        Builder external(Map<IpAddress, String> external);
+        Builder external(Map<String, String> external);
 
         /**
          * Returns kubevirt router builder with supplied peer router.