Modified PI-ECMP demo app to work with 2x2 clos topology

Also minor fix to general device provider.

Change-Id: Ia2c76a55d5e28d2be8edb75ee3c34ada557ada12
diff --git a/providers/general/device/src/main/java/org/onosproject/provider/general/device/impl/GeneralDeviceProvider.java b/providers/general/device/src/main/java/org/onosproject/provider/general/device/impl/GeneralDeviceProvider.java
index 260e41c..40c5370 100644
--- a/providers/general/device/src/main/java/org/onosproject/provider/general/device/impl/GeneralDeviceProvider.java
+++ b/providers/general/device/src/main/java/org/onosproject/provider/general/device/impl/GeneralDeviceProvider.java
@@ -441,14 +441,16 @@
 
         if (pipeconfId == null) {
             log.warn("Device {} is pipeline programmable but no pipeconf can be associated to it.", deviceId);
-            return true;
+            return false;
+        }
+
+        if (!piPipeconfService.getPipeconf(pipeconfId).isPresent()) {
+            log.warn("Pipeconf {} is not registered", pipeconfId);
+            return false;
         }
 
 
-        PiPipeconf pipeconf = piPipeconfService.getPipeconf(pipeconfId).orElseThrow(
-                () -> new IllegalStateException("Pipeconf is not registered: " + pipeconfId)
-        );
-
+        PiPipeconf pipeconf = piPipeconfService.getPipeconf(pipeconfId).get();
 
         try {
             if (!pipelineProg.deployPipeconf(pipeconf).get()) {