Print intent involved in OpticalConnectivity
Change-Id: Iffb037d80e935d9708e3c0631ab90dad3ab95f56
diff --git a/apps/newoptical/src/main/java/org/onosproject/newoptical/OpticalPathProvisioner.java b/apps/newoptical/src/main/java/org/onosproject/newoptical/OpticalPathProvisioner.java
index 2200ef0..944d3b6 100644
--- a/apps/newoptical/src/main/java/org/onosproject/newoptical/OpticalPathProvisioner.java
+++ b/apps/newoptical/src/main/java/org/onosproject/newoptical/OpticalPathProvisioner.java
@@ -17,7 +17,6 @@
import com.google.common.annotations.Beta;
import com.google.common.collect.ImmutableList;
-
import org.apache.commons.lang3.tuple.Pair;
import org.apache.felix.scr.annotations.Activate;
import org.apache.felix.scr.annotations.Component;
@@ -52,6 +51,7 @@
import org.onosproject.net.intent.IntentEvent;
import org.onosproject.net.intent.IntentListener;
import org.onosproject.net.intent.IntentService;
+import org.onosproject.net.intent.Key;
import org.onosproject.net.intent.OpticalCircuitIntent;
import org.onosproject.net.intent.OpticalConnectivityIntent;
import org.onosproject.net.link.LinkEvent;
@@ -89,6 +89,7 @@
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.Map.Entry;
import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
@@ -241,6 +242,15 @@
.map(Versioned::value)
.collect(GuavaCollectors.toImmutableList());
}
+
+ public Set<Key> listIntents(OpticalConnectivityId id) {
+ return linkPathMap.entrySet().stream()
+ .filter(ent -> id.equals(ent.getValue().value().id()))
+ .map(Entry::getKey)
+ .map(PacketLinkRealizedByOptical::realizingIntentKey)
+ .collect(Collectors.toSet());
+ }
+
/*
* Request packet-layer connectivity between specified ports,
* over packet-optical multi-layer infrastructure.
diff --git a/apps/newoptical/src/main/java/org/onosproject/newoptical/api/OpticalPathService.java b/apps/newoptical/src/main/java/org/onosproject/newoptical/api/OpticalPathService.java
index 4e95224..15837c7 100644
--- a/apps/newoptical/src/main/java/org/onosproject/newoptical/api/OpticalPathService.java
+++ b/apps/newoptical/src/main/java/org/onosproject/newoptical/api/OpticalPathService.java
@@ -21,12 +21,14 @@
import org.onosproject.net.ConnectPoint;
import org.onosproject.net.Link;
import org.onosproject.net.Path;
+import org.onosproject.net.intent.Key;
import org.onosproject.newoptical.OpticalConnectivity;
import java.time.Duration;
import java.util.Collection;
import java.util.List;
import java.util.Optional;
+import java.util.Set;
/**
* Service to setup optical domain connectivity.
@@ -77,4 +79,13 @@
* @return collection of OpticalConnectivity
*/
Collection<OpticalConnectivity> listConnectivity();
+
+ /**
+ * Lists intents generated from specified OpticalConnectivity.
+ *
+ * @param id OpticalConnectivity identifier
+ * @return set of Intent Key
+ */
+ Set<Key> listIntents(OpticalConnectivityId id);
+
}
diff --git a/apps/newoptical/src/main/java/org/onosproject/newoptical/cli/ListOpticalConnectivityCommand.java b/apps/newoptical/src/main/java/org/onosproject/newoptical/cli/ListOpticalConnectivityCommand.java
index fa8bf0a..54dc7c9 100644
--- a/apps/newoptical/src/main/java/org/onosproject/newoptical/cli/ListOpticalConnectivityCommand.java
+++ b/apps/newoptical/src/main/java/org/onosproject/newoptical/cli/ListOpticalConnectivityCommand.java
@@ -42,6 +42,8 @@
.map(lk -> lk.src() + "-" + lk.dst())
.collect(Collectors.joining(", ")));
print(" Bandwidth: %s, Latency: %s", connectivity.bandwidth(), connectivity.latency());
+ print(" Intent Keys: %s",
+ opticalPathService.listIntents(connectivity.id()));
}
}