[ONOS-4725]duplicate symbolic path names are allowed in creation of pce path

Change-Id: I81c7282f7c5c47ad6d088b3df1deadf1d44d2772
diff --git a/apps/pce/app/src/main/java/org/onosproject/pce/cli/PceSetupPathCommand.java b/apps/pce/app/src/main/java/org/onosproject/pce/cli/PceSetupPathCommand.java
index a14e6e1..7bd7970 100644
--- a/apps/pce/app/src/main/java/org/onosproject/pce/cli/PceSetupPathCommand.java
+++ b/apps/pce/app/src/main/java/org/onosproject/pce/cli/PceSetupPathCommand.java
@@ -17,6 +17,7 @@
 
 import static org.slf4j.LoggerFactory.getLogger;
 
+import java.util.Collection;
 import java.util.List;
 import java.util.LinkedList;
 
@@ -26,6 +27,8 @@
 
 import org.onlab.util.DataRateUnit;
 import org.onosproject.cli.AbstractShellCommand;
+import org.onosproject.incubator.net.tunnel.Tunnel;
+import org.onosproject.incubator.net.tunnel.TunnelService;
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.intent.constraint.BandwidthConstraint;
 import org.onosproject.net.intent.Constraint;
@@ -71,6 +74,7 @@
         log.info("executing pce-setup-path");
 
         PceService service = get(PceService.class);
+        TunnelService tunnelService = get(TunnelService.class);
 
         DeviceId srcDevice = DeviceId.deviceId(src);
         DeviceId dstDevice = DeviceId.deviceId(dst);
@@ -85,6 +89,15 @@
         }
         LspType lspType = LspType.values()[type];
 
+        //Validating tunnel name, duplicated tunnel names not allowed
+        Collection<Tunnel> existingTunnels = tunnelService.queryTunnel(Tunnel.Type.MPLS);
+        for (Tunnel t : existingTunnels) {
+            if (t.tunnelName().toString().equals(name)) {
+                error("Path creation failed, Tunnel name already exists");
+                return;
+            }
+        }
+
         // Add bandwidth
         // bandwidth default data rate unit is in BPS
         if (bandwidth != 0.0) {