ONOS-3633 - Adding intent event listener to PointToPointIntent virtual network
provider. Intent events will either set the virtual link state to ACTIVE or
INACTIVE.
Change-Id: I34b65b2bfff29b791e7b2eb4d7cefb2ec4e88672
diff --git a/incubator/store/src/main/java/org/onosproject/incubator/store/virtual/impl/DistributedVirtualNetworkStore.java b/incubator/store/src/main/java/org/onosproject/incubator/store/virtual/impl/DistributedVirtualNetworkStore.java
index 800ecfd..7ceeb1b 100644
--- a/incubator/store/src/main/java/org/onosproject/incubator/store/virtual/impl/DistributedVirtualNetworkStore.java
+++ b/incubator/store/src/main/java/org/onosproject/incubator/store/virtual/impl/DistributedVirtualNetworkStore.java
@@ -44,6 +44,7 @@
import org.onosproject.net.ConnectPoint;
import org.onosproject.net.Device;
import org.onosproject.net.DeviceId;
+import org.onosproject.net.Link;
import org.onosproject.net.Port;
import org.onosproject.net.PortNumber;
import org.onosproject.store.AbstractStore;
@@ -295,6 +296,7 @@
* @return true if the network identifier exists, false otherwise.
*/
private boolean networkExists(NetworkId networkId) {
+ checkNotNull(networkId, "The network identifier cannot be null.");
return (networkIdVirtualNetworkMap.containsKey(networkId));
}
@@ -339,7 +341,8 @@
}
@Override
- public VirtualLink addLink(NetworkId networkId, ConnectPoint src, ConnectPoint dst, TunnelId realizedBy) {
+ public VirtualLink addLink(NetworkId networkId, ConnectPoint src, ConnectPoint dst,
+ Link.State state, TunnelId realizedBy) {
checkState(networkExists(networkId), "The network has not been added.");
Set<VirtualLink> virtualLinkSet = networkIdVirtualLinkSetMap.get(networkId);
if (virtualLinkSet == null) {
@@ -352,6 +355,7 @@
.networkId(networkId)
.src(src)
.dst(dst)
+ .state(state)
.tunnelId(realizedBy)
.build();
@@ -361,7 +365,7 @@
}
@Override
- public void updateLink(VirtualLink virtualLink, TunnelId tunnelId) {
+ public void updateLink(VirtualLink virtualLink, TunnelId tunnelId, Link.State state) {
checkState(networkExists(virtualLink.networkId()), "The network has not been added.");
Set<VirtualLink> virtualLinkSet = networkIdVirtualLinkSetMap.get(virtualLink.networkId());
if (virtualLinkSet == null) {
@@ -374,6 +378,7 @@
.src(virtualLink.src())
.dst(virtualLink.dst())
.tunnelId(tunnelId)
+ .state(state)
.build();
virtualLinkSet.add(newVirtualLink);
@@ -471,16 +476,8 @@
return ImmutableSet.copyOf(virtualLinkSet);
}
- /**
- * Returns the virtual link matching the network identifier, source connect point,
- * and destination connect point.
- *
- * @param networkId network identifier
- * @param src source connect point
- * @param dst destination connect point
- * @return virtual link
- */
- private VirtualLink getLink(NetworkId networkId, ConnectPoint src, ConnectPoint dst) {
+ @Override
+ public VirtualLink getLink(NetworkId networkId, ConnectPoint src, ConnectPoint dst) {
Set<VirtualLink> virtualLinkSet = networkIdVirtualLinkSetMap.get(networkId);
if (virtualLinkSet == null) {
return null;
@@ -504,6 +501,10 @@
virtualPortSet = new HashSet<>();
}
+ if (deviceId == null) {
+ return ImmutableSet.copyOf(virtualPortSet);
+ }
+
Set<VirtualPort> portSet = new HashSet<>();
virtualPortSet.forEach(virtualPort -> {
if (virtualPort.element().id().equals(deviceId)) {