Implement kubevirt router store, manager and codec with unit tests

Change-Id: Ib93a71326aa35b4817f0e6b6c97d5f57b26fe470
diff --git a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/NetworkAttachmentDefinitionWatcher.java b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/NetworkAttachmentDefinitionWatcher.java
index 32bed58..d3a8ee4 100644
--- a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/NetworkAttachmentDefinitionWatcher.java
+++ b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/NetworkAttachmentDefinitionWatcher.java
@@ -58,6 +58,7 @@
 import static org.onosproject.kubevirtnetworking.api.Constants.KUBEVIRT_NETWORKING_APP_ID;
 import static org.onosproject.kubevirtnetworking.api.KubevirtNetwork.Type.FLAT;
 import static org.onosproject.kubevirtnetworking.util.KubevirtNetworkingUtil.k8sClient;
+import static org.onosproject.kubevirtnetworking.util.KubevirtNetworkingUtil.parseResourceName;
 import static org.slf4j.LoggerFactory.getLogger;
 
 /**
@@ -218,7 +219,7 @@
                 return;
             }
 
-            String name = parseName(resource);
+            String name = parseResourceName(resource);
 
             log.trace("Process NetworkAttachmentDefinition {} creating event from API server.",
                     name);
@@ -236,7 +237,7 @@
                 return;
             }
 
-            String name = parseName(resource);
+            String name = parseResourceName(resource);
 
             log.trace("Process NetworkAttachmentDefinition {} updating event from API server.",
                     name);
@@ -252,7 +253,7 @@
                 return;
             }
 
-            String name = parseName(resource);
+            String name = parseResourceName(resource);
 
             log.trace("Process NetworkAttachmentDefinition {} removal event from API server.",
                     name);
@@ -264,20 +265,10 @@
             return Objects.equals(localNodeId, leadershipService.getLeader(appId.name()));
         }
 
-        private String parseName(String resource) {
-            try {
-                JSONObject json = new JSONObject(resource);
-                return json.getJSONObject("metadata").getString("name");
-            } catch (JSONException e) {
-                log.error("");
-            }
-            return "";
-        }
-
         private KubevirtNetwork parseKubevirtNetwork(String resource) {
             try {
                 JSONObject json = new JSONObject(resource);
-                String name = parseName(resource);
+                String name = parseResourceName(resource);
                 JSONObject annots = json.getJSONObject("metadata").getJSONObject("annotations");
                 String networkConfig = annots.getString(NETWORK_CONFIG);
                 if (networkConfig != null) {