In vnet CLI, separates virutal port creation and binding operations.
Original usage with specifiying a phyiscal port is also in supporting.

Changes.
1. vnet-create-port allow to create virtual port
   without a specific virtual port
2. vnet-bind-port command is added to newly bind or to update
3. Virtual binding point is changed from Port to ConnectPoint.

Change-Id: I4c8f9a2b9b2786ba519ead3559d7f005390fee86
diff --git a/core/common/src/main/java/org/onosproject/codec/impl/VirtualPortCodec.java b/core/common/src/main/java/org/onosproject/codec/impl/VirtualPortCodec.java
index d5f170c..77a1359 100644
--- a/core/common/src/main/java/org/onosproject/codec/impl/VirtualPortCodec.java
+++ b/core/common/src/main/java/org/onosproject/codec/impl/VirtualPortCodec.java
@@ -23,12 +23,8 @@
 import org.onosproject.incubator.net.virtual.VirtualDevice;
 import org.onosproject.incubator.net.virtual.VirtualNetworkService;
 import org.onosproject.incubator.net.virtual.VirtualPort;
-import org.onosproject.net.DefaultAnnotations;
-import org.onosproject.net.DefaultDevice;
-import org.onosproject.net.DefaultPort;
-import org.onosproject.net.Device;
+import org.onosproject.net.ConnectPoint;
 import org.onosproject.net.DeviceId;
-import org.onosproject.net.Port;
 import org.onosproject.net.PortNumber;
 
 import java.util.Set;
@@ -60,8 +56,8 @@
                 .put(NETWORK_ID, vPort.networkId().toString())
                 .put(DEVICE_ID, vPort.element().id().toString())
                 .put(PORT_NUM, vPort.number().toString())
-                .put(PHYS_DEVICE_ID, vPort.realizedBy().element().id().toString())
-                .put(PHYS_PORT_NUM, vPort.realizedBy().number().toString());
+                .put(PHYS_DEVICE_ID, vPort.realizedBy().deviceId().toString())
+                .put(PHYS_PORT_NUM, vPort.realizedBy().port().toString());
 
         return result;
     }
@@ -86,10 +82,7 @@
         DeviceId physDId = DeviceId.deviceId(extractMember(PHYS_DEVICE_ID, json));
         PortNumber physPortNum = PortNumber.portNumber(extractMember(PHYS_PORT_NUM, json));
 
-        DefaultAnnotations annotations = DefaultAnnotations.builder().build();
-        Device physDevice = new DefaultDevice(null, physDId,
-                null, null, null, null, null, null, annotations);
-        Port realizedBy = new DefaultPort(physDevice, physPortNum, true);
+        ConnectPoint realizedBy = new ConnectPoint(physDId, physPortNum);
         return new DefaultVirtualPort(nId, vDev, portNum, realizedBy);
     }
 
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/VirtualNetworkIntentCompiler.java b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/VirtualNetworkIntentCompiler.java
index 8c04c6a..5eac0d4 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/VirtualNetworkIntentCompiler.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/compiler/VirtualNetworkIntentCompiler.java
@@ -202,7 +202,7 @@
         for (VirtualPort port : ports) {
             if (port.element().id().equals(virtualCp.elementId()) &&
                     port.number().equals(virtualCp.port())) {
-                return new ConnectPoint(port.realizedBy().element().id(), port.realizedBy().number());
+                return new ConnectPoint(port.realizedBy().deviceId(), port.realizedBy().port());
             }
         }
         return null;
diff --git a/core/net/src/test/java/org/onosproject/net/intent/impl/compiler/VirtualNetworkIntentCompilerTest.java b/core/net/src/test/java/org/onosproject/net/intent/impl/compiler/VirtualNetworkIntentCompilerTest.java
index 8b3387a..8ac8a92 100644
--- a/core/net/src/test/java/org/onosproject/net/intent/impl/compiler/VirtualNetworkIntentCompilerTest.java
+++ b/core/net/src/test/java/org/onosproject/net/intent/impl/compiler/VirtualNetworkIntentCompilerTest.java
@@ -153,28 +153,28 @@
                 manager.createVirtualDevice(virtualNetwork.id(), DID4);
 
         Port port1 = new DefaultPort(virtualDevice1, PortNumber.portNumber(1), true);
-        manager.createVirtualPort(virtualNetwork.id(), virtualDevice1.id(), port1.number(), port1);
         cp1 = new ConnectPoint(virtualDevice1.id(), port1.number());
+        manager.createVirtualPort(virtualNetwork.id(), virtualDevice1.id(), port1.number(), cp1);
 
         Port port2 = new DefaultPort(virtualDevice1, PortNumber.portNumber(2), true);
-        manager.createVirtualPort(virtualNetwork.id(), virtualDevice1.id(), port2.number(), port2);
         cp2 = new ConnectPoint(virtualDevice1.id(), port2.number());
+        manager.createVirtualPort(virtualNetwork.id(), virtualDevice1.id(), port2.number(), cp2);
 
         Port port3 = new DefaultPort(virtualDevice2, PortNumber.portNumber(3), true);
-        manager.createVirtualPort(virtualNetwork.id(), virtualDevice2.id(), port3.number(), port3);
         cp3 = new ConnectPoint(virtualDevice2.id(), port3.number());
+        manager.createVirtualPort(virtualNetwork.id(), virtualDevice2.id(), port3.number(), cp3);
 
         Port port4 = new DefaultPort(virtualDevice2, PortNumber.portNumber(4), true);
-        manager.createVirtualPort(virtualNetwork.id(), virtualDevice2.id(), port4.number(), port4);
         cp4 = new ConnectPoint(virtualDevice2.id(), port4.number());
+        manager.createVirtualPort(virtualNetwork.id(), virtualDevice2.id(), port4.number(), cp4);
 
         Port port5 = new DefaultPort(virtualDevice3, PortNumber.portNumber(5), true);
-        manager.createVirtualPort(virtualNetwork.id(), virtualDevice3.id(), port5.number(), port5);
         cp5 = new ConnectPoint(virtualDevice3.id(), port5.number());
+        manager.createVirtualPort(virtualNetwork.id(), virtualDevice3.id(), port5.number(), cp5);
 
         Port port6 = new DefaultPort(virtualDevice3, PortNumber.portNumber(6), true);
-        manager.createVirtualPort(virtualNetwork.id(), virtualDevice3.id(), port6.number(), port6);
         cp6 = new ConnectPoint(virtualDevice3.id(), port6.number());
+        manager.createVirtualPort(virtualNetwork.id(), virtualDevice3.id(), port6.number(), cp6);
 
         link1 = manager.createVirtualLink(virtualNetwork.id(), cp1, cp3);
         virtualNetworkManagerStore.updateLink(link1, link1.tunnelId(), Link.State.ACTIVE);