GUI -- Added "devices" scenario to display all device types.
 - added "query" glyph.
 - added glyphDefined() predicate to glyph service.
 - made sure query glyph is displayed if a device type for which there is no corresponding glyph is encountered.

Change-Id: Id5339ad3b666b885e096ced57760c5f84d8bcfc2
diff --git a/web/gui/src/test/_karma/ev/devices/ev_10_addDevice_s9_ids.json b/web/gui/src/test/_karma/ev/devices/ev_10_addDevice_s9_ids.json
new file mode 100644
index 0000000..232d4ed
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_10_addDevice_s9_ids.json
@@ -0,0 +1,18 @@
+{
+  "event": "addDevice",
+  "payload": {
+    "id": "of:0000000000000009",
+    "type": "ids",
+    "online": true,
+    "master": "ONOS",
+    "labels": [
+      "",
+      "ids",
+      "of:0000000000000009"
+    ],
+    "metaUi": {
+      "x": 200,
+      "y": 400
+    }
+  }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_11_addDevice_s10_controller.json b/web/gui/src/test/_karma/ev/devices/ev_11_addDevice_s10_controller.json
new file mode 100644
index 0000000..abd24d6
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_11_addDevice_s10_controller.json
@@ -0,0 +1,18 @@
+{
+  "event": "addDevice",
+  "payload": {
+    "id": "of:00000000000000010",
+    "type": "controller",
+    "online": true,
+    "master": "ONOS",
+    "labels": [
+      "",
+      "controller",
+      "of:0000000000000010"
+    ],
+    "metaUi": {
+      "x": 350,
+      "y": 400
+    }
+  }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_12_addDevice_s11_virtual.json b/web/gui/src/test/_karma/ev/devices/ev_12_addDevice_s11_virtual.json
new file mode 100644
index 0000000..1fe1837
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_12_addDevice_s11_virtual.json
@@ -0,0 +1,18 @@
+{
+  "event": "addDevice",
+  "payload": {
+    "id": "of:00000000000000011",
+    "type": "virtual",
+    "online": true,
+    "master": "ONOS",
+    "labels": [
+      "",
+      "virtual",
+      "of:0000000000000011"
+    ],
+    "metaUi": {
+      "x": 500,
+      "y": 400
+    }
+  }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_13_addDevice_s12_fiber_switch.json b/web/gui/src/test/_karma/ev/devices/ev_13_addDevice_s12_fiber_switch.json
new file mode 100644
index 0000000..954376c
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_13_addDevice_s12_fiber_switch.json
@@ -0,0 +1,18 @@
+{
+  "event": "addDevice",
+  "payload": {
+    "id": "of:00000000000000012",
+    "type": "fiber_switch",
+    "online": true,
+    "master": "ONOS",
+    "labels": [
+      "",
+      "fiber_switch",
+      "of:0000000000000012"
+    ],
+    "metaUi": {
+      "x": 650,
+      "y": 400
+    }
+  }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_14_addDevice_s13_microwave.json b/web/gui/src/test/_karma/ev/devices/ev_14_addDevice_s13_microwave.json
new file mode 100644
index 0000000..3d40cec
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_14_addDevice_s13_microwave.json
@@ -0,0 +1,18 @@
+{
+  "event": "addDevice",
+  "payload": {
+    "id": "of:00000000000000013",
+    "type": "microwave",
+    "online": true,
+    "master": "ONOS",
+    "labels": [
+      "",
+      "microwave",
+      "of:0000000000000013"
+    ],
+    "metaUi": {
+      "x": 300,
+      "y": 500
+    }
+  }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_15_addDevice_s14_other.json b/web/gui/src/test/_karma/ev/devices/ev_15_addDevice_s14_other.json
new file mode 100644
index 0000000..e33532d
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_15_addDevice_s14_other.json
@@ -0,0 +1,18 @@
+{
+  "event": "addDevice",
+  "payload": {
+    "id": "of:00000000000000014",
+    "type": "other",
+    "online": true,
+    "master": "ONOS",
+    "labels": [
+      "",
+      "other",
+      "of:0000000000000014"
+    ],
+    "metaUi": {
+      "x": 450,
+      "y": 500
+    }
+  }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_16_addDevice_s15_unmatched.json b/web/gui/src/test/_karma/ev/devices/ev_16_addDevice_s15_unmatched.json
new file mode 100644
index 0000000..1773c91
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_16_addDevice_s15_unmatched.json
@@ -0,0 +1,18 @@
+{
+  "event": "addDevice",
+  "payload": {
+    "id": "of:00000000000000015",
+    "type": "-unmatched-",
+    "online": true,
+    "master": "ONOS-B",
+    "labels": [
+      "",
+      "-unmatched-",
+      "of:0000000000000015"
+    ],
+    "metaUi": {
+      "x": 600,
+      "y": 500
+    }
+  }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_1_addInstance.json b/web/gui/src/test/_karma/ev/devices/ev_1_addInstance.json
new file mode 100644
index 0000000..20be9e2
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_1_addInstance.json
@@ -0,0 +1,14 @@
+{
+  "event": "addInstance",
+  "payload": {
+    "id": "ONOS",
+    "ip": "192.168.56.101",
+    "online": true,
+    "uiAttached": true,
+    "switches": 4,
+    "labels": [
+      "ONOS",
+      "192.168.56.101"
+    ]
+  }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_2_addDevice_s1_switch.json b/web/gui/src/test/_karma/ev/devices/ev_2_addDevice_s1_switch.json
new file mode 100644
index 0000000..5f8ad66
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_2_addDevice_s1_switch.json
@@ -0,0 +1,18 @@
+{
+  "event": "addDevice",
+  "payload": {
+    "id": "of:0000000000000001",
+    "type": "switch",
+    "online": true,
+    "master": "ONOS",
+    "labels": [
+      "",
+      "switch",
+      "of:0000000000000001"
+    ],
+    "metaUi": {
+      "x": 200,
+      "y": 200
+    }
+  }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_3_addDevice_s2_router.json b/web/gui/src/test/_karma/ev/devices/ev_3_addDevice_s2_router.json
new file mode 100644
index 0000000..b6da44c
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_3_addDevice_s2_router.json
@@ -0,0 +1,18 @@
+{
+  "event": "addDevice",
+  "payload": {
+    "id": "of:0000000000000002",
+    "type": "router",
+    "online": true,
+    "master": "ONOS",
+    "labels": [
+      "",
+      "router",
+      "of:0000000000000002"
+    ],
+    "metaUi": {
+      "x": 350,
+      "y": 200
+    }
+  }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_4_addDevice_s3_roadm.json b/web/gui/src/test/_karma/ev/devices/ev_4_addDevice_s3_roadm.json
new file mode 100644
index 0000000..468749e
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_4_addDevice_s3_roadm.json
@@ -0,0 +1,18 @@
+{
+  "event": "addDevice",
+  "payload": {
+    "id": "of:0000000000000003",
+    "type": "roadm",
+    "online": true,
+    "master": "ONOS",
+    "labels": [
+      "",
+      "roadm",
+      "of:0000000000000003"
+    ],
+    "metaUi": {
+      "x": 500,
+      "y": 200
+    }
+  }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_5_addDevice_s4_otn.json b/web/gui/src/test/_karma/ev/devices/ev_5_addDevice_s4_otn.json
new file mode 100644
index 0000000..c8e234b
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_5_addDevice_s4_otn.json
@@ -0,0 +1,18 @@
+{
+  "event": "addDevice",
+  "payload": {
+    "id": "of:0000000000000004",
+    "type": "otn",
+    "online": true,
+    "master": "ONOS",
+    "labels": [
+      "",
+      "otn",
+      "of:0000000000000004"
+    ],
+    "metaUi": {
+      "x": 650,
+      "y": 200
+    }
+  }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_6_addDevice_s5_roadm_otn.json b/web/gui/src/test/_karma/ev/devices/ev_6_addDevice_s5_roadm_otn.json
new file mode 100644
index 0000000..c54cc4a
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_6_addDevice_s5_roadm_otn.json
@@ -0,0 +1,18 @@
+{
+  "event": "addDevice",
+  "payload": {
+    "id": "of:0000000000000005",
+    "type": "roadm_otn",
+    "online": true,
+    "master": "ONOS",
+    "labels": [
+      "",
+      "roadm_otn",
+      "of:0000000000000005"
+    ],
+    "metaUi": {
+      "x": 300,
+      "y": 300
+    }
+  }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_7_addDevice_s6_firewall.json b/web/gui/src/test/_karma/ev/devices/ev_7_addDevice_s6_firewall.json
new file mode 100644
index 0000000..19d50d4
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_7_addDevice_s6_firewall.json
@@ -0,0 +1,18 @@
+{
+  "event": "addDevice",
+  "payload": {
+    "id": "of:0000000000000006",
+    "type": "firewall",
+    "online": true,
+    "master": "ONOS",
+    "labels": [
+      "",
+      "firewall",
+      "of:0000000000000006"
+    ],
+    "metaUi": {
+      "x": 450,
+      "y": 300
+    }
+  }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_8_addDevice_s7_balancer.json b/web/gui/src/test/_karma/ev/devices/ev_8_addDevice_s7_balancer.json
new file mode 100644
index 0000000..d9a3b79
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_8_addDevice_s7_balancer.json
@@ -0,0 +1,18 @@
+{
+  "event": "addDevice",
+  "payload": {
+    "id": "of:0000000000000007",
+    "type": "balancer",
+    "online": true,
+    "master": "ONOS",
+    "labels": [
+      "",
+      "balancer",
+      "of:0000000000000007"
+    ],
+    "metaUi": {
+      "x": 600,
+      "y": 300
+    }
+  }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/ev_9_addDevice_s8_ips.json b/web/gui/src/test/_karma/ev/devices/ev_9_addDevice_s8_ips.json
new file mode 100644
index 0000000..c89f565
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/ev_9_addDevice_s8_ips.json
@@ -0,0 +1,18 @@
+{
+  "event": "addDevice",
+  "payload": {
+    "id": "of:0000000000000008",
+    "type": "ips",
+    "online": true,
+    "master": "ONOS",
+    "labels": [
+      "",
+      "ips",
+      "of:0000000000000008"
+    ],
+    "metaUi": {
+      "x": 750,
+      "y": 300
+    }
+  }
+}
diff --git a/web/gui/src/test/_karma/ev/devices/scenario.json b/web/gui/src/test/_karma/ev/devices/scenario.json
new file mode 100644
index 0000000..ee3c1ea
--- /dev/null
+++ b/web/gui/src/test/_karma/ev/devices/scenario.json
@@ -0,0 +1,12 @@
+{
+  "comments": [
+    "Showing all device types"
+  ],
+  "title": "Show Device Types",
+  "params": {
+    "lastAuto": 16
+  },
+  "description": [
+    "Show all device types."
+  ]
+}