Add OTN device and ports

Change-Id: I18f3376d1466077e95d7324a27a660302f0123b3
diff --git a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java
index 700e57e..f9063ad 100644
--- a/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java
+++ b/web/gui/src/main/java/org/onosproject/ui/impl/TopologyViewMessageHandler.java
@@ -611,12 +611,14 @@
     private void sendAllDevices() {
         // Send optical first, others later for layered rendering
         for (Device device : deviceService.getDevices()) {
-            if (device.type() == Device.Type.ROADM) {
+            if ((device.type() == Device.Type.ROADM) ||
+                    (device.type() == Device.Type.OTN))  {
                 sendMessage(deviceMessage(new DeviceEvent(DEVICE_ADDED, device)));
             }
         }
         for (Device device : deviceService.getDevices()) {
-            if (device.type() != Device.Type.ROADM) {
+            if ((device.type() != Device.Type.ROADM) &&
+                    (device.type() != Device.Type.OTN))  {
                 sendMessage(deviceMessage(new DeviceEvent(DEVICE_ADDED, device)));
             }
         }
diff --git a/web/gui/src/main/webapp/_sdh/glyphs.html b/web/gui/src/main/webapp/_sdh/glyphs.html
index 589ef07..a973936 100644
--- a/web/gui/src/main/webapp/_sdh/glyphs.html
+++ b/web/gui/src/main/webapp/_sdh/glyphs.html
@@ -131,6 +131,7 @@
             icon(grp, 'router',      [250, 0]);
             icon(grp, 'bgpSpeaker',  [300, 0]);
             icon(grp, 'uiAttached',  [350, 0]);
+            icon(grp, 'otn',         [400, 0]);
 
             icon(grp, 'chain',       [  0, 60]);
             icon(grp, 'crown',       [ 50, 60]);
diff --git a/web/gui/src/main/webapp/app/fw/svg/glyph.js b/web/gui/src/main/webapp/app/fw/svg/glyph.js
index ef42589..d3bb333 100644
--- a/web/gui/src/main/webapp/app/fw/svg/glyph.js
+++ b/web/gui/src/main/webapp/app/fw/svg/glyph.js
@@ -88,6 +88,11 @@
             "M52,40l-12,0,0-8-18,13,18,13,0-8,12,0zM52,74l-12,0,0-8-18,13," +
             "18,13,0-8,12,0z",
 
+            otn: "M10,35l25-25h40l25,25v40l-25,25h-40l-25-25zM58,26l12,0,0" +
+            "-8,18,13-18,13,0-8-12,0zM58,60l12,0,0-8,18,13-18,13,0-8-12,0z" +
+            "M52,40l-12,0,0-8-18,13,18,13,0-8,12,0zM52,74l-12,0,0-8-18,13," +
+            "18,13,0-8,12,0z",
+
             endstation: "M10,15a5,5,0,0,1,5-5h65a5,5,0,0,1,5,5v80a5,5,0,0,1" +
             "-5,5h-65a5,5,0,0,1-5-5zM87.5,14l11,11a3,10,0,0,1,2,10v40a3,10," +
             "0,0,1,-2,10l-11,11zM17,19a2,2,0,0,1,2-2h56a2,2,0,0,1,2,2v26a2," +
diff --git a/web/gui/src/main/webapp/app/fw/svg/icon.js b/web/gui/src/main/webapp/app/fw/svg/icon.js
index cd5f66b..b8d249e 100644
--- a/web/gui/src/main/webapp/app/fw/svg/icon.js
+++ b/web/gui/src/main/webapp/app/fw/svg/icon.js
@@ -49,6 +49,7 @@
 
         devIcon_SWITCH: 'switch',
         devIcon_ROADM: 'roadm',
+        devIcon_OTN: 'otn',
         deviceTable: 'switch',
         flowTable: 'flowTable',
         portTable: 'portTable',
diff --git a/web/gui/src/main/webapp/app/view/topo/topoFilter.js b/web/gui/src/main/webapp/app/view/topo/topoFilter.js
index f9b96ae..bda2d7e 100644
--- a/web/gui/src/main/webapp/app/view/topo/topoFilter.js
+++ b/web/gui/src/main/webapp/app/view/topo/topoFilter.js
@@ -44,7 +44,8 @@
             },
             device: {
                 switch: 'pkt',
-                roadm: 'opt'
+                roadm: 'opt',
+                otn: 'opt'
             },
             link: {
                 hostLink: 'pkt',
diff --git a/web/gui/src/main/webapp/app/view/topo/topoPanel.js b/web/gui/src/main/webapp/app/view/topo/topoPanel.js
index 37faf29..34e85f3 100644
--- a/web/gui/src/main/webapp/app/view/topo/topoPanel.js
+++ b/web/gui/src/main/webapp/app/view/topo/topoPanel.js
@@ -223,7 +223,8 @@
 
     var isDevice = {
         switch: 1,
-        roadm: 1
+        roadm: 1,
+        otn:1
     };
 
     function displaySingle(data) {