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()));
 
         }
     }