[ONOS-7905] Add manager and store for k8s network and ports with unit tests

Change-Id: Idd7a8762edbc4bc6d14fd7b22d2218897e7ea0c0
diff --git a/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/DefaultK8sNetwork.java b/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/DefaultK8sNetwork.java
index 3ac1230..fef1b1c 100644
--- a/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/DefaultK8sNetwork.java
+++ b/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/DefaultK8sNetwork.java
@@ -29,6 +29,7 @@
     private static final int DEFAULT_MTU = 1500;
 
     private final String networkId;
+    private final String name;
     private final Type type;
     private final Integer mtu;
     private final String segmentId;
@@ -38,9 +39,10 @@
     private static final String NOT_NULL_MSG = "Network % cannot be null";
 
     // private constructor not intended for external invocation
-    private DefaultK8sNetwork(String networkId, Type type, Integer mtu,
+    private DefaultK8sNetwork(String networkId, String name, Type type, Integer mtu,
                               String segmentId, IpAddress gatewayIp, String cidr) {
         this.networkId = networkId;
+        this.name = name;
         this.type = type;
         this.mtu = mtu;
         this.segmentId = segmentId;
@@ -59,6 +61,11 @@
     }
 
     @Override
+    public String name() {
+        return name;
+    }
+
+    @Override
     public Integer mtu() {
         return mtu;
     }
@@ -88,6 +95,7 @@
         }
         DefaultK8sNetwork that = (DefaultK8sNetwork) o;
         return Objects.equal(networkId, that.networkId) &&
+                Objects.equal(name, that.name) &&
                 type == that.type &&
                 Objects.equal(mtu, that.mtu) &&
                 Objects.equal(segmentId, that.segmentId) &&
@@ -97,13 +105,14 @@
 
     @Override
     public int hashCode() {
-        return Objects.hashCode(networkId, type, mtu, segmentId, gatewayIp, cidr);
+        return Objects.hashCode(networkId, name, type, mtu, segmentId, gatewayIp, cidr);
     }
 
     @Override
     public String toString() {
         return MoreObjects.toStringHelper(this)
                 .add("networkId", networkId)
+                .add("name", name)
                 .add("type", type)
                 .add("mtu", mtu)
                 .add("segmentId", segmentId)
@@ -127,6 +136,7 @@
     public static final class Builder implements K8sNetwork.Builder {
 
         private String networkId;
+        private String name;
         private Type type;
         private Integer mtu;
         private String segmentId;
@@ -136,6 +146,7 @@
         @Override
         public K8sNetwork build() {
             checkArgument(networkId != null, NOT_NULL_MSG, "networkId");
+            checkArgument(name != null, NOT_NULL_MSG, "name");
             checkArgument(type != null, NOT_NULL_MSG, "type");
             checkArgument(segmentId != null, NOT_NULL_MSG, "segmentId");
             checkArgument(gatewayIp != null, NOT_NULL_MSG, "gatewayIp");
@@ -145,7 +156,7 @@
                 mtu = DEFAULT_MTU;
             }
 
-            return new DefaultK8sNetwork(networkId, type, mtu, segmentId, gatewayIp, cidr);
+            return new DefaultK8sNetwork(networkId, name, type, mtu, segmentId, gatewayIp, cidr);
         }
 
         @Override
@@ -155,6 +166,12 @@
         }
 
         @Override
+        public Builder name(String name) {
+            this.name = name;
+            return this;
+        }
+
+        @Override
         public Builder type(Type type) {
             this.type = type;
             return this;