ONOS-2843 Fix bug post NBI subnet get an error.

Change-Id: I93b52a0c69a57b458b610afbb78cfdec0b50e3a5
diff --git a/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/DefaultSubnet.java b/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/DefaultSubnet.java
index 6311a80..88fabff 100644
--- a/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/DefaultSubnet.java
+++ b/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/DefaultSubnet.java
@@ -18,6 +18,7 @@
 import static com.google.common.base.MoreObjects.toStringHelper;

 

 import java.util.Objects;

+import java.util.Set;

 

 import org.onlab.packet.IpAddress;

 import org.onlab.packet.IpAddress.Version;

@@ -38,8 +39,8 @@
     private final boolean shared;

     private final Mode ipV6AddressMode;

     private final Mode ipV6RaMode;

-    private final Iterable<HostRoute> hostRoutes;

-    private final Iterable<AllocationPool> allocationPools;

+    private final Set<HostRoute> hostRoutes;

+    private final Set<AllocationPool> allocationPools;

 

     /**

      * Creates a subnet object.

@@ -64,9 +65,9 @@
                          TenantNetworkId networkId, TenantId tenantId,

                          Version ipVersion, IpPrefix cidr, IpAddress gatewayIp,

                          boolean dhcpEnabled, boolean shared,

-                         Iterable<HostRoute> hostRoutes, Mode ipV6AddressMode,

+                         Set<HostRoute> hostRoutes, Mode ipV6AddressMode,

                          Mode ipV6RaMode,

-                         Iterable<AllocationPool> allocationPoolsIt) {

+                         Set<AllocationPool> allocationPoolsIt) {

         this.id = id;

         this.subnetName = subnetName;

         this.networkId = networkId;

diff --git a/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/DefaultVirtualPort.java b/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/DefaultVirtualPort.java
index 4de131a..adf3a3a 100644
--- a/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/DefaultVirtualPort.java
+++ b/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/DefaultVirtualPort.java
@@ -43,8 +43,8 @@
     private final String bindingVnicType;

     private final String bindingVifType;

     private final String bindingVifDetails;

-    private final Collection<AllowedAddressPair> allowedAddressPairs;

-    private final Collection<SecurityGroup> securityGroups;

+    private final Set<AllowedAddressPair> allowedAddressPairs;

+    private final Set<SecurityGroup> securityGroups;

 

     /**

      * Creates a VirtualPort object.

@@ -72,8 +72,8 @@
                               DeviceId deviceId,

                               Set<FixedIp> fixedIps,

                               BindingHostId bindingHostId,

-                              Collection<AllowedAddressPair> allowedAddressPairs,

-                              Collection<SecurityGroup> securityGroups) {

+                              Set<AllowedAddressPair> allowedAddressPairs,

+                              Set<SecurityGroup> securityGroups) {

         this.id = id;

         this.networkId = networkId;

         this.adminStateUp = adminStateUp;

diff --git a/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/cli/subnet/SubnetCreateCommand.java b/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/cli/subnet/SubnetCreateCommand.java
index a673d17..5623640 100644
--- a/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/cli/subnet/SubnetCreateCommand.java
+++ b/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/cli/subnet/SubnetCreateCommand.java
@@ -88,11 +88,11 @@
 
     @Option(name = "-h", aliases = "--hostRoutes", description = "Subnet jsonnode hostRoutes",
             required = false, multiValued = false)
-    Iterable<HostRoute> hostRoutes = null;
+    Set<HostRoute> hostRoutes = Sets.newHashSet();
 
     @Option(name = "-a", aliases = "--allocationPools",
             description = "Subnet jsonnode allocationPools", required = false, multiValued = false)
-    Iterable<AllocationPool> allocationPools = Sets.newHashSet();
+    Set<AllocationPool> allocationPools = Sets.newHashSet();
 
     @Override
     protected void execute() {
diff --git a/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/cli/subnet/SubnetUpdateCommand.java b/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/cli/subnet/SubnetUpdateCommand.java
index 2e8fc20..f8ee6b9 100644
--- a/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/cli/subnet/SubnetUpdateCommand.java
+++ b/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/cli/subnet/SubnetUpdateCommand.java
@@ -88,11 +88,11 @@
 
     @Option(name = "-h", aliases = "--hostRoutes", description = "Subnet jsonnode hostRoutes",
             required = false, multiValued = false)
-    Iterable<HostRoute> hostRoutes = null;
+    Set<HostRoute> hostRoutes = Sets.newHashSet();
 
     @Option(name = "-a", aliases = "--allocationPools",
             description = "Subnet jsonnode allocationPools", required = false, multiValued = false)
-    Iterable<AllocationPool> allocationPools = Sets.newHashSet();;
+    Set<AllocationPool> allocationPools = Sets.newHashSet();;
 
     @Override
     protected void execute() {
diff --git a/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/cli/virtualport/VirtualPortCreateCommand.java b/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/cli/virtualport/VirtualPortCreateCommand.java
index 956f8ce..4c555e3 100644
--- a/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/cli/virtualport/VirtualPortCreateCommand.java
+++ b/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/cli/virtualport/VirtualPortCreateCommand.java
@@ -15,7 +15,6 @@
  */
 package org.onosproject.vtnrsc.cli.virtualport;
 
-import java.util.Collection;
 import java.util.Map;
 import java.util.Set;
 
@@ -106,11 +105,11 @@
 
     @Option(name = "-l", aliases = "--allowedAddress", description = "virtual allowedAddressPair.",
             required = false, multiValued = false)
-    Collection<AllowedAddressPair> allowedAddressPairs = Sets.newHashSet();
+    Set<AllowedAddressPair> allowedAddressPairs = Sets.newHashSet();
 
     @Option(name = "-e", aliases = "--securityGroups", description = "virtualPort securityGroups.",
             required = false, multiValued = false)
-    Collection<SecurityGroup> securityGroups = Sets.newHashSet();
+    Set<SecurityGroup> securityGroups = Sets.newHashSet();
 
     @Override
     protected void execute() {
diff --git a/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/cli/virtualport/VirtualPortUpdateCommand.java b/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/cli/virtualport/VirtualPortUpdateCommand.java
index fd218e0..6df4b23 100644
--- a/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/cli/virtualport/VirtualPortUpdateCommand.java
+++ b/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/cli/virtualport/VirtualPortUpdateCommand.java
@@ -15,7 +15,6 @@
  */
 package org.onosproject.vtnrsc.cli.virtualport;
 
-import java.util.Collection;
 import java.util.Map;
 import java.util.Set;
 
@@ -107,11 +106,11 @@
 
     @Option(name = "-l", aliases = "--allowedAddress", description = "virtual allowedAddressPair.",
             required = false, multiValued = false)
-    Collection<AllowedAddressPair> allowedAddressPairs = Sets.newHashSet();
+    Set<AllowedAddressPair> allowedAddressPairs = Sets.newHashSet();
 
     @Option(name = "-e", aliases = "--securityGroups", description = "virtualPort securityGroups.",
             required = false, multiValued = false)
-    Collection<SecurityGroup> securityGroups = Sets.newHashSet();
+    Set<SecurityGroup> securityGroups = Sets.newHashSet();
 
     @Override
     protected void execute() {
diff --git a/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/subnet/impl/SubnetManager.java b/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/subnet/impl/SubnetManager.java
index 879dd35..ab810a8 100644
--- a/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/subnet/impl/SubnetManager.java
+++ b/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/subnet/impl/SubnetManager.java
@@ -21,12 +21,14 @@
 import org.apache.felix.scr.annotations.Reference;

 import org.apache.felix.scr.annotations.ReferenceCardinality;

 import org.apache.felix.scr.annotations.Service;

+import org.onlab.packet.IpAddress;

 import org.onosproject.core.ApplicationId;

 import org.onosproject.core.CoreService;

 import org.onosproject.store.serializers.KryoNamespaces;

 import org.onosproject.store.service.Serializer;

 import org.onosproject.store.service.StorageService;

 import org.onosproject.vtnrsc.AllocationPool;

+import org.onosproject.vtnrsc.DefaultSubnet;

 import org.onosproject.vtnrsc.HostRoute;

 import org.onosproject.vtnrsc.Subnet;

 import org.onosproject.vtnrsc.SubnetId;

@@ -86,7 +88,9 @@
                                                  TenantId.class,

                                                  HostRoute.class,

                                                  Subnet.Mode.class,

-                                                 AllocationPool.class))

+                                                 AllocationPool.class,

+                                                 DefaultSubnet.class,

+                                                 IpAddress.Version.class))

                 .build().asJavaMap();

 

         log.info("Started");

diff --git a/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/virtualport/impl/VirtualPortManager.java b/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/virtualport/impl/VirtualPortManager.java
index a94ea1f..e0c49f5 100644
--- a/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/virtualport/impl/VirtualPortManager.java
+++ b/apps/vtnrsc/src/main/java/org/onosproject/vtnrsc/virtualport/impl/VirtualPortManager.java
@@ -30,6 +30,7 @@
 import org.onosproject.store.service.StorageService;

 import org.onosproject.vtnrsc.AllowedAddressPair;

 import org.onosproject.vtnrsc.BindingHostId;

+import org.onosproject.vtnrsc.DefaultVirtualPort;

 import org.onosproject.vtnrsc.FixedIp;

 import org.onosproject.vtnrsc.SecurityGroup;

 import org.onosproject.vtnrsc.SubnetId;

@@ -98,7 +99,8 @@
                                                  BindingHostId.class,

                                                  SecurityGroup.class,

                                                  SubnetId.class,

-                                                 IpAddress.class))

+                                                 IpAddress.class,

+                                                 DefaultVirtualPort.class))

                 .build().asJavaMap();

         log.info("Started");

     }