Added local dev server
diff --git a/views/ngXosViews/diagnostic/mocks/data/instances.json b/views/ngXosViews/diagnostic/mocks/data/instances.json
new file mode 100644
index 0000000..a60b696
--- /dev/null
+++ b/views/ngXosViews/diagnostic/mocks/data/instances.json
@@ -0,0 +1,289 @@
+[
+    {
+        "humanReadableName": "sflow_service_instance", 
+        "id": 8, 
+        "created": "2016-02-17T22:01:02.663Z", 
+        "updated": "2016-02-17T22:05:58.270Z", 
+        "enacted": "2016-02-17T22:05:58.281Z", 
+        "policed": "2016-02-17T22:05:59.137Z", 
+        "backend_register": "{\"next_run\": 0, \"last_success\": 1455746758.281283, \"exponent\": 0}", 
+        "backend_status": "1 - OK", 
+        "deleted": false, 
+        "write_protect": false, 
+        "lazy_blocked": false, 
+        "no_sync": false, 
+        "instance_id": "instance-00000005", 
+        "instance_uuid": "42b75cb7-7205-4a68-9100-b2c1e3ea69b5", 
+        "name": "sflow_service_instance", 
+        "instance_name": "mysite_sflow-8", 
+        "ip": "130.127.133.93", 
+        "image": 1, 
+        "creator": 1, 
+        "slice": 8, 
+        "deployment": 1, 
+        "node": 2, 
+        "numberCores": 0, 
+        "flavor": 1, 
+        "userData": null, 
+        "networks": [
+            21, 
+            20
+        ]
+    }, 
+    {
+        "humanReadableName": "client1", 
+        "id": 4, 
+        "created": "2016-02-17T22:00:58.284Z", 
+        "updated": "2016-02-17T22:03:56.863Z", 
+        "enacted": "2016-02-17T22:03:56.872Z", 
+        "policed": "2016-02-17T22:03:56.953Z", 
+        "backend_register": "{\"next_run\": 0, \"last_success\": 1455746636.872524, \"exponent\": 0}", 
+        "backend_status": "1 - OK", 
+        "deleted": false, 
+        "write_protect": false, 
+        "lazy_blocked": false, 
+        "no_sync": false, 
+        "instance_id": "instance-00000001", 
+        "instance_uuid": "cca264bb-8136-45dd-a5a3-41902a4bcf5b", 
+        "name": "client1", 
+        "instance_name": "mysite_clients-4", 
+        "ip": "130.127.133.90", 
+        "image": 1, 
+        "creator": 1, 
+        "slice": 3, 
+        "deployment": 1, 
+        "node": 1, 
+        "numberCores": 0, 
+        "flavor": 1, 
+        "userData": null, 
+        "networks": [
+            10, 
+            4, 
+            11
+        ]
+    }, 
+    {
+        "humanReadableName": "mysite_ceilometer-7", 
+        "id": 7, 
+        "created": "2016-02-17T22:01:02.550Z", 
+        "updated": "2016-02-17T22:06:15.667Z", 
+        "enacted": "2016-02-17T22:06:15.672Z", 
+        "policed": "2016-02-17T22:06:15.818Z", 
+        "backend_register": "{\"next_run\": 0, \"last_success\": 1455746775.672678, \"exponent\": 0}", 
+        "backend_status": "1 - OK", 
+        "deleted": false, 
+        "write_protect": false, 
+        "lazy_blocked": false, 
+        "no_sync": false, 
+        "instance_id": "instance-00000006", 
+        "instance_uuid": "23d04870-5e0d-4b03-b2e2-032cbfec56fa", 
+        "name": "mysite_ceilometer", 
+        "instance_name": "mysite_ceilometer-7", 
+        "ip": "130.127.133.90", 
+        "image": 1, 
+        "creator": 1, 
+        "slice": 7, 
+        "deployment": 1, 
+        "node": 1, 
+        "numberCores": 0, 
+        "flavor": 1, 
+        "userData": null, 
+        "networks": [
+            18, 
+            19, 
+            5
+        ]
+    }, 
+    {
+        "humanReadableName": "onos_app_1", 
+        "id": 3, 
+        "created": "2016-02-17T22:00:58.258Z", 
+        "updated": "2016-02-17T22:04:43.301Z", 
+        "enacted": "2016-02-17T22:04:43.309Z", 
+        "policed": "2016-02-17T22:04:43.943Z", 
+        "backend_register": "{\"next_run\": 0, \"last_success\": 1455746683.309321, \"exponent\": 0}", 
+        "backend_status": "1 - OK", 
+        "deleted": false, 
+        "write_protect": false, 
+        "lazy_blocked": false, 
+        "no_sync": false, 
+        "instance_id": "instance-00000002", 
+        "instance_uuid": "c21dc52f-363e-47f6-9a2a-489c0af392fb", 
+        "name": "onos_app_1", 
+        "instance_name": "mysite_onos_vbng-3", 
+        "ip": "130.127.133.59", 
+        "image": 1, 
+        "creator": 1, 
+        "slice": 5, 
+        "deployment": 1, 
+        "node": 3, 
+        "numberCores": 0, 
+        "flavor": 1, 
+        "userData": null, 
+        "networks": [
+            15, 
+            14
+        ]
+    }, 
+    {
+        "humanReadableName": "ovs_vbng", 
+        "id": 6, 
+        "created": "2016-02-17T22:00:58.567Z", 
+        "updated": "2016-02-17T22:06:33.495Z", 
+        "enacted": "2016-02-17T22:06:33.562Z", 
+        "policed": "2016-02-17T22:06:34.619Z", 
+        "backend_register": "{\"next_run\": 0, \"last_success\": 1455746793.562678, \"exponent\": 0}", 
+        "backend_status": "1 - OK", 
+        "deleted": false, 
+        "write_protect": false, 
+        "lazy_blocked": false, 
+        "no_sync": false, 
+        "instance_id": "instance-00000007", 
+        "instance_uuid": "81dc0638-c9bc-4396-be17-ea805050e388", 
+        "name": "ovs_vbng", 
+        "instance_name": "mysite_vbng-6", 
+        "ip": "130.127.133.59", 
+        "image": 1, 
+        "creator": 1, 
+        "slice": 2, 
+        "deployment": 1, 
+        "node": 3, 
+        "numberCores": 0, 
+        "flavor": 1, 
+        "userData": null, 
+        "networks": [
+            8, 
+            3, 
+            9
+        ]
+    }, 
+    {
+        "humanReadableName": "onos_app_2", 
+        "id": 2, 
+        "created": "2016-02-17T22:00:58.199Z", 
+        "updated": "2016-02-17T22:05:26.512Z", 
+        "enacted": "2016-02-17T22:05:26.521Z", 
+        "policed": "2016-02-17T22:05:26.730Z", 
+        "backend_register": "{\"next_run\": 0, \"last_success\": 1455746726.521625, \"exponent\": 0}", 
+        "backend_status": "1 - OK", 
+        "deleted": false, 
+        "write_protect": false, 
+        "lazy_blocked": false, 
+        "no_sync": false, 
+        "instance_id": "instance-00000003", 
+        "instance_uuid": "8e3f00c5-0957-4505-ae69-e03e41306435", 
+        "name": "onos_app_2", 
+        "instance_name": "mysite_onos_volt-2", 
+        "ip": "130.127.133.93", 
+        "image": 1, 
+        "creator": 1, 
+        "slice": 4, 
+        "deployment": 1, 
+        "node": 2, 
+        "numberCores": 0, 
+        "flavor": 1, 
+        "userData": null, 
+        "networks": [
+            12, 
+            13
+        ]
+    }, 
+    {
+        "humanReadableName": "ovs_volt", 
+        "id": 5, 
+        "created": "2016-02-17T22:00:58.540Z", 
+        "updated": "2016-02-17T22:06:50.666Z", 
+        "enacted": "2016-02-17T22:06:50.680Z", 
+        "policed": "2016-02-17T22:06:51.342Z", 
+        "backend_register": "{\"next_run\": 0, \"last_success\": 1455746810.680553, \"exponent\": 0}", 
+        "backend_status": "1 - OK", 
+        "deleted": false, 
+        "write_protect": false, 
+        "lazy_blocked": false, 
+        "no_sync": false, 
+        "instance_id": "instance-00000008", 
+        "instance_uuid": "49c08f77-f05a-4c9b-859c-20c2982b19c6", 
+        "name": "ovs_volt", 
+        "instance_name": "mysite_volt-5", 
+        "ip": "130.127.133.93", 
+        "image": 1, 
+        "creator": 1, 
+        "slice": 6, 
+        "deployment": 1, 
+        "node": 2, 
+        "numberCores": 0, 
+        "flavor": 1, 
+        "userData": null, 
+        "networks": [
+            17, 
+            16, 
+            4
+        ]
+    }, 
+    {
+        "humanReadableName": "mysite_vsg-1", 
+        "id": 1, 
+        "created": "2016-02-17T22:00:58.015Z", 
+        "updated": "2016-02-17T22:05:44.877Z", 
+        "enacted": "2016-02-17T22:05:44.887Z", 
+        "policed": "2016-02-17T22:05:45.538Z", 
+        "backend_register": "{\"next_run\": 0, \"last_success\": 1455746744.887768, \"exponent\": 0}", 
+        "backend_status": "1 - OK", 
+        "deleted": false, 
+        "write_protect": false, 
+        "lazy_blocked": false, 
+        "no_sync": false, 
+        "instance_id": "instance-00000004", 
+        "instance_uuid": "075a3ae4-9e76-4198-8e6b-67c67b996745", 
+        "name": "mysite_vsg", 
+        "instance_name": "mysite_vsg-1", 
+        "ip": "130.127.133.90", 
+        "image": 1, 
+        "creator": 1, 
+        "slice": 1, 
+        "deployment": 1, 
+        "node": 1, 
+        "numberCores": 0, 
+        "flavor": 1, 
+        "userData": null, 
+        "networks": [
+            1, 
+            6, 
+            7, 
+            2
+        ]
+    },
+    {
+        "humanReadableName": "mysite_vsg-2", 
+        "id": 11, 
+        "created": "2016-02-17T22:00:58.015Z", 
+        "updated": "2016-02-17T22:05:44.877Z", 
+        "enacted": "2016-02-17T22:05:44.887Z", 
+        "policed": "2016-02-17T22:05:45.538Z", 
+        "backend_register": "{\"next_run\": 0, \"last_success\": 1455746744.887768, \"exponent\": 0}", 
+        "backend_status": "1 - OK", 
+        "deleted": false, 
+        "write_protect": false, 
+        "lazy_blocked": false, 
+        "no_sync": false, 
+        "instance_id": "instance-00000004", 
+        "instance_uuid": "075a3ae4-9e76-4198-8e6b-67c67b996746", 
+        "name": "mysite_vsg", 
+        "instance_name": "mysite_vsg-2", 
+        "ip": "130.127.133.90", 
+        "image": 1, 
+        "creator": 1, 
+        "slice": 1, 
+        "deployment": 1, 
+        "node": 2, 
+        "numberCores": 0, 
+        "flavor": 1, 
+        "userData": null, 
+        "networks": [
+            1, 
+            6, 
+            7, 
+            2
+        ]
+    }
+]
\ No newline at end of file
diff --git a/views/ngXosViews/diagnostic/mocks/data/meterstatistics.json b/views/ngXosViews/diagnostic/mocks/data/meterstatistics.json
new file mode 100644
index 0000000..7be26c4
--- /dev/null
+++ b/views/ngXosViews/diagnostic/mocks/data/meterstatistics.json
@@ -0,0 +1,310 @@
+[
+    {
+        "resource_name": "mysite_vsg-1", 
+        "description": "Existence of instance", 
+        "resource": "075a3ae4-9e76-4198-8e6b-67c67b996745", 
+        "meter": "instance", 
+        "unit": "instance", 
+        "category": "Nova", 
+        "slice": "mysite_vsg", 
+        "name": "none", 
+        "service": "service_vsg", 
+        "value": 1.0, 
+        "time": "2016-02-17T22:19:00", 
+        "project_id": "718dd78532a24a74b0491437bbef398c"
+    }, 
+    {
+        "resource_name": "mysite_vsg-1", 
+        "description": "Volume of RAM", 
+        "resource": "075a3ae4-9e76-4198-8e6b-67c67b996745", 
+        "meter": "memory", 
+        "unit": "MB", 
+        "category": "Nova", 
+        "slice": "mysite_vsg", 
+        "name": "none", 
+        "service": "service_vsg", 
+        "value": 2048.0, 
+        "time": "2016-02-17T22:19:00", 
+        "project_id": "718dd78532a24a74b0491437bbef398c"
+    }, 
+    {
+        "resource_name": "mysite_vsg-1", 
+        "description": "Volume of RAM used", 
+        "resource": "075a3ae4-9e76-4198-8e6b-67c67b996745", 
+        "meter": "memory.usage", 
+        "unit": "MB", 
+        "category": "Nova", 
+        "slice": "mysite_vsg", 
+        "name": "none", 
+        "service": "service_vsg", 
+        "value": 1754.0, 
+        "time": "2016-02-17T22:19:00", 
+        "project_id": "718dd78532a24a74b0491437bbef398c"
+    }, 
+    {
+        "resource_name": "mysite_vsg-1", 
+        "description": "CPU time used", 
+        "resource": "075a3ae4-9e76-4198-8e6b-67c67b996745", 
+        "meter": "cpu", 
+        "unit": "ns", 
+        "category": "Nova", 
+        "slice": "mysite_vsg", 
+        "name": "none", 
+        "service": "service_vsg", 
+        "value": 179260000000.0, 
+        "time": "2016-02-17T22:19:00", 
+        "project_id": "718dd78532a24a74b0491437bbef398c"
+    }, 
+    {
+        "resource_name": "mysite_vsg-1", 
+        "description": "Number of VCPUs", 
+        "resource": "075a3ae4-9e76-4198-8e6b-67c67b996745", 
+        "meter": "vcpus", 
+        "unit": "vcpu", 
+        "category": "Nova", 
+        "slice": "mysite_vsg", 
+        "name": "none", 
+        "service": "service_vsg", 
+        "value": 1.0, 
+        "time": "2016-02-17T22:19:00", 
+        "project_id": "718dd78532a24a74b0491437bbef398c"
+    }, 
+    {
+        "resource_name": "mysite_vsg-1", 
+        "description": "Number of read requests", 
+        "resource": "075a3ae4-9e76-4198-8e6b-67c67b996745", 
+        "meter": "disk.read.requests", 
+        "unit": "request", 
+        "category": "Nova", 
+        "slice": "mysite_vsg", 
+        "name": "none", 
+        "service": "service_vsg", 
+        "value": 10444.0, 
+        "time": "2016-02-17T22:19:00", 
+        "project_id": "718dd78532a24a74b0491437bbef398c"
+    }, 
+    {
+        "resource_name": "mysite_vsg-1", 
+        "description": "Number of write requests", 
+        "resource": "075a3ae4-9e76-4198-8e6b-67c67b996745", 
+        "meter": "disk.write.requests", 
+        "unit": "request", 
+        "category": "Nova", 
+        "slice": "mysite_vsg", 
+        "name": "none", 
+        "service": "service_vsg", 
+        "value": 58370.0, 
+        "time": "2016-02-17T22:19:00", 
+        "project_id": "718dd78532a24a74b0491437bbef398c"
+    }, 
+    {
+        "resource_name": "mysite_vsg-1", 
+        "description": "Volume of reads", 
+        "resource": "075a3ae4-9e76-4198-8e6b-67c67b996745", 
+        "meter": "disk.read.bytes", 
+        "unit": "B", 
+        "category": "Nova", 
+        "slice": "mysite_vsg", 
+        "name": "none", 
+        "service": "service_vsg", 
+        "value": 317620030.0, 
+        "time": "2016-02-17T22:19:00", 
+        "project_id": "718dd78532a24a74b0491437bbef398c"
+    }, 
+    {
+        "resource_name": "mysite_vsg-1", 
+        "description": "Volume of writes", 
+        "resource": "075a3ae4-9e76-4198-8e6b-67c67b996745", 
+        "meter": "disk.write.bytes", 
+        "unit": "B", 
+        "category": "Nova", 
+        "slice": "mysite_vsg", 
+        "name": "none", 
+        "service": "service_vsg", 
+        "value": 2818024448.0, 
+        "time": "2016-02-17T22:19:00", 
+        "project_id": "718dd78532a24a74b0491437bbef398c"
+    }, 
+    {
+        "resource_name": "mysite_vsg-1", 
+        "description": "Size of root disk", 
+        "resource": "075a3ae4-9e76-4198-8e6b-67c67b996745", 
+        "meter": "disk.root.size", 
+        "unit": "GB", 
+        "category": "Nova", 
+        "slice": "mysite_vsg", 
+        "name": "none", 
+        "service": "service_vsg", 
+        "value": 20.0, 
+        "time": "2016-02-17T22:19:00", 
+        "project_id": "718dd78532a24a74b0491437bbef398c"
+    }, 
+    {
+        "resource_name": "mysite_vsg-1", 
+        "description": "Size of ephemeral disk", 
+        "resource": "075a3ae4-9e76-4198-8e6b-67c67b996745", 
+        "meter": "disk.ephemeral.size", 
+        "unit": "GB", 
+        "category": "Nova", 
+        "slice": "mysite_vsg", 
+        "name": "none", 
+        "service": "service_vsg", 
+        "value": 0.0, 
+        "time": "2016-02-17T22:19:00", 
+        "project_id": "718dd78532a24a74b0491437bbef398c"
+    },
+    {
+        "resource_name": "mysite_vsg-2", 
+        "description": "Existence of instance", 
+        "resource": "075a3ae4-9e76-4198-8e6b-67c67b996746", 
+        "meter": "instance", 
+        "unit": "instance", 
+        "category": "Nova", 
+        "slice": "mysite_vsg", 
+        "name": "none", 
+        "service": "service_vsg", 
+        "value": 1.0, 
+        "time": "2016-02-17T22:19:00", 
+        "project_id": "718dd78532a24a74b0491437bbef398c"
+    }, 
+    {
+        "resource_name": "mysite_vsg-2", 
+        "description": "Volume of RAM", 
+        "resource": "075a3ae4-9e76-4198-8e6b-67c67b996746", 
+        "meter": "memory", 
+        "unit": "MB", 
+        "category": "Nova", 
+        "slice": "mysite_vsg", 
+        "name": "none", 
+        "service": "service_vsg", 
+        "value": 2048.0, 
+        "time": "2016-02-17T22:19:00", 
+        "project_id": "718dd78532a24a74b0491437bbef398c"
+    }, 
+    {
+        "resource_name": "mysite_vsg-2", 
+        "description": "Volume of RAM used", 
+        "resource": "075a3ae4-9e76-4198-8e6b-67c67b996746", 
+        "meter": "memory.usage", 
+        "unit": "MB", 
+        "category": "Nova", 
+        "slice": "mysite_vsg", 
+        "name": "none", 
+        "service": "service_vsg", 
+        "value": 1534.0, 
+        "time": "2016-02-17T22:19:00", 
+        "project_id": "718dd78532a24a74b0491437bbef398c"
+    }, 
+    {
+        "resource_name": "mysite_vsg-2", 
+        "description": "CPU time used", 
+        "resource": "075a3ae4-9e76-4198-8e6b-67c67b996746", 
+        "meter": "cpu", 
+        "unit": "ns", 
+        "category": "Nova", 
+        "slice": "mysite_vsg", 
+        "name": "none", 
+        "service": "service_vsg", 
+        "value": 134920000000.0, 
+        "time": "2016-02-17T22:19:00", 
+        "project_id": "718dd78532a24a74b0491437bbef398c"
+    }, 
+    {
+        "resource_name": "mysite_vsg-2", 
+        "description": "Number of VCPUs", 
+        "resource": "075a3ae4-9e76-4198-8e6b-67c67b996746", 
+        "meter": "vcpus", 
+        "unit": "vcpu", 
+        "category": "Nova", 
+        "slice": "mysite_vsg", 
+        "name": "none", 
+        "service": "service_vsg", 
+        "value": 1.0, 
+        "time": "2016-02-17T22:19:00", 
+        "project_id": "718dd78532a24a74b0491437bbef398c"
+    }, 
+    {
+        "resource_name": "mysite_vsg-2", 
+        "description": "Number of read requests", 
+        "resource": "075a3ae4-9e76-4198-8e6b-67c67b996746", 
+        "meter": "disk.read.requests", 
+        "unit": "request", 
+        "category": "Nova", 
+        "slice": "mysite_vsg", 
+        "name": "none", 
+        "service": "service_vsg", 
+        "value": 10222.0, 
+        "time": "2016-02-17T22:19:00", 
+        "project_id": "718dd78532a24a74b0491437bbef398c"
+    }, 
+    {
+        "resource_name": "mysite_vsg-2", 
+        "description": "Number of write requests", 
+        "resource": "075a3ae4-9e76-4198-8e6b-67c67b996746", 
+        "meter": "disk.write.requests", 
+        "unit": "request", 
+        "category": "Nova", 
+        "slice": "mysite_vsg", 
+        "name": "none", 
+        "service": "service_vsg", 
+        "value": 38570.0, 
+        "time": "2016-02-17T22:19:00", 
+        "project_id": "718dd78532a24a74b0491437bbef398c"
+    }, 
+    {
+        "resource_name": "mysite_vsg-2", 
+        "description": "Volume of reads", 
+        "resource": "075a3ae4-9e76-4198-8e6b-67c67b996746", 
+        "meter": "disk.read.bytes", 
+        "unit": "B", 
+        "category": "Nova", 
+        "slice": "mysite_vsg", 
+        "name": "none", 
+        "service": "service_vsg", 
+        "value": 326340030.0, 
+        "time": "2016-02-17T22:19:00", 
+        "project_id": "718dd78532a24a74b0491437bbef398c"
+    }, 
+    {
+        "resource_name": "mysite_vsg-2", 
+        "description": "Volume of writes", 
+        "resource": "075a3ae4-9e76-4198-8e6b-67c67b996746", 
+        "meter": "disk.write.bytes", 
+        "unit": "B", 
+        "category": "Nova", 
+        "slice": "mysite_vsg", 
+        "name": "none", 
+        "service": "service_vsg", 
+        "value": 2818024448.0, 
+        "time": "2016-02-17T22:19:00", 
+        "project_id": "718dd78532a24a74b0491437bbef398c"
+    }, 
+    {
+        "resource_name": "mysite_vsg-2", 
+        "description": "Size of root disk", 
+        "resource": "075a3ae4-9e76-4198-8e6b-67c67b996746", 
+        "meter": "disk.root.size", 
+        "unit": "GB", 
+        "category": "Nova", 
+        "slice": "mysite_vsg", 
+        "name": "none", 
+        "service": "service_vsg", 
+        "value": 20.0, 
+        "time": "2016-02-17T22:19:00", 
+        "project_id": "718dd78532a24a74b0491437bbef398c"
+    }, 
+    {
+        "resource_name": "mysite_vsg-2", 
+        "description": "Size of ephemeral disk", 
+        "resource": "075a3ae4-9e76-4198-8e6b-67c67b996746", 
+        "meter": "disk.ephemeral.size", 
+        "unit": "GB", 
+        "category": "Nova", 
+        "slice": "mysite_vsg", 
+        "name": "none", 
+        "service": "service_vsg", 
+        "value": 0.0, 
+        "time": "2016-02-17T22:19:00", 
+        "project_id": "718dd78532a24a74b0491437bbef398c"
+    }
+]
\ No newline at end of file
diff --git a/views/ngXosViews/diagnostic/mocks/data/nodes.json b/views/ngXosViews/diagnostic/mocks/data/nodes.json
new file mode 100644
index 0000000..03ca1da
--- /dev/null
+++ b/views/ngXosViews/diagnostic/mocks/data/nodes.json
@@ -0,0 +1,53 @@
+[
+    {
+        "humanReadableName": "cp-3.teone-cord.xos-pg0.clemson.cloudlab.us", 
+        "id": 3, 
+        "created": "2016-02-17T22:00:53.717Z", 
+        "updated": "2016-02-17T22:01:24.890Z", 
+        "enacted": null, 
+        "policed": null, 
+        "backend_register": "{}", 
+        "backend_status": "0 - Provisioning in progress", 
+        "deleted": false, 
+        "write_protect": false, 
+        "lazy_blocked": false, 
+        "no_sync": true, 
+        "name": "cp-3.teone-cord.xos-pg0.clemson.cloudlab.us", 
+        "site_deployment": "http://clnode067.clemson.cloudlab.us:9999/xos/sitedeployments/1/", 
+        "site": "http://clnode067.clemson.cloudlab.us:9999/xos/sites/1/"
+    }, 
+    {
+        "humanReadableName": "cp-2.teone-cord.xos-pg0.clemson.cloudlab.us", 
+        "id": 2, 
+        "created": "2016-02-17T22:00:53.701Z", 
+        "updated": "2016-02-17T22:01:24.891Z", 
+        "enacted": null, 
+        "policed": null, 
+        "backend_register": "{}", 
+        "backend_status": "0 - Provisioning in progress", 
+        "deleted": false, 
+        "write_protect": false, 
+        "lazy_blocked": false, 
+        "no_sync": true, 
+        "name": "cp-2.teone-cord.xos-pg0.clemson.cloudlab.us", 
+        "site_deployment": "http://clnode067.clemson.cloudlab.us:9999/xos/sitedeployments/1/", 
+        "site": "http://clnode067.clemson.cloudlab.us:9999/xos/sites/1/"
+    }, 
+    {
+        "humanReadableName": "cp-1.teone-cord.xos-pg0.clemson.cloudlab.us", 
+        "id": 1, 
+        "created": "2016-02-17T22:00:53.680Z", 
+        "updated": "2016-02-17T22:01:24.892Z", 
+        "enacted": null, 
+        "policed": null, 
+        "backend_register": "{}", 
+        "backend_status": "0 - Provisioning in progress", 
+        "deleted": false, 
+        "write_protect": false, 
+        "lazy_blocked": false, 
+        "no_sync": true, 
+        "name": "cp-1.teone-cord.xos-pg0.clemson.cloudlab.us", 
+        "site_deployment": "http://clnode067.clemson.cloudlab.us:9999/xos/sitedeployments/1/", 
+        "site": "http://clnode067.clemson.cloudlab.us:9999/xos/sites/1/"
+    }
+]
\ No newline at end of file
diff --git a/views/ngXosViews/diagnostic/mocks/data/services.json b/views/ngXosViews/diagnostic/mocks/data/services.json
new file mode 100644
index 0000000..b3ae7b7
--- /dev/null
+++ b/views/ngXosViews/diagnostic/mocks/data/services.json
@@ -0,0 +1,177 @@
+[
+   {
+      "humanReadableName":"service_vbng",
+      "id":1,
+      "created":"2016-02-17T19:36:04.242Z",
+      "updated":"2016-02-17T19:36:04.242Z",
+      "enacted":null,
+      "policed":null,
+      "backend_register":"{}",
+      "backend_status":"0 - Provisioning in progress",
+      "deleted":false,
+      "write_protect":false,
+      "lazy_blocked":false,
+      "no_sync":false,
+      "description":null,
+      "enabled":true,
+      "kind":"vBNG",
+      "name":"service_vbng",
+      "versionNumber":"",
+      "published":true,
+      "view_url":"/admin/cord/vbngservice/$id$/",
+      "icon_url":null,
+      "public_key":null,
+      "service_specific_id":null,
+      "service_specific_attribute":null
+   },
+   {
+      "humanReadableName":"service_vsg",
+      "id":2,
+      "created":"2016-02-17T19:36:04.249Z",
+      "updated":"2016-02-17T19:36:04.249Z",
+      "enacted":null,
+      "policed":null,
+      "backend_register":"{}",
+      "backend_status":"0 - Provisioning in progress",
+      "deleted":false,
+      "write_protect":false,
+      "lazy_blocked":false,
+      "no_sync":false,
+      "description":null,
+      "enabled":true,
+      "kind":"vCPE",
+      "name":"service_vsg",
+      "versionNumber":"",
+      "published":true,
+      "view_url":"/admin/cord/vsgservice/$id$/",
+      "icon_url":null,
+      "public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC0bhkFHg3DxtQY1S0bN4nV2USTO2scHIrTO/WhZYFB9cqxKJPPlayMzi7sJxZFjsEPG9+gUJn7942eObs0mWkn7eIbph1rgKDhh2ZT6GFdJojgaRr0E3HhjmdHXF3IkCEz0DZ1aiBRX0dAEcp+B7eHvcg9QmBUN9TWhMlN82EKwMtWlrMwAqycNEcPiKiwMC3SPNPrq5qTrxIlzMG8Q51Z1b0FYx2oP0E44zecquFF8qfwoVbA48qT0fdPIdcQ0otEdsGaOxxurOPA86q1zYg60w+Hsygl8L2UpyUqEuXKm0OuhckCmCkcPlEysMAty0bx/9M3DwSkMJdOj81Jl+Bd teone@ctl.teone.xos-pg0.clemson.cloudlab.us\n",
+      "service_specific_id":null,
+      "service_specific_attribute":"{\"backend_network_label\": \"hpc_client\"}"
+   },
+   {
+      "humanReadableName":"service_volt",
+      "id":3,
+      "created":"2016-02-17T19:36:04.585Z",
+      "updated":"2016-02-17T19:36:04.585Z",
+      "enacted":null,
+      "policed":null,
+      "backend_register":"{}",
+      "backend_status":"0 - Provisioning in progress",
+      "deleted":false,
+      "write_protect":false,
+      "lazy_blocked":false,
+      "no_sync":false,
+      "description":null,
+      "enabled":true,
+      "kind":"vOLT",
+      "name":"service_volt",
+      "versionNumber":"",
+      "published":true,
+      "view_url":"/admin/cord/voltservice/$id$/",
+      "icon_url":null,
+      "public_key":null,
+      "service_specific_id":null,
+      "service_specific_attribute":null
+   },
+   {
+      "humanReadableName":"service_ceilometer",
+      "id":6,
+      "created":"2016-02-17T19:36:09.291Z",
+      "updated":"2016-02-17T19:36:09.291Z",
+      "enacted":null,
+      "policed":null,
+      "backend_register":"{}",
+      "backend_status":"0 - Provisioning in progress",
+      "deleted":false,
+      "write_protect":false,
+      "lazy_blocked":false,
+      "no_sync":false,
+      "description":null,
+      "enabled":true,
+      "kind":"ceilometer",
+      "name":"service_ceilometer",
+      "versionNumber":"",
+      "published":true,
+      "view_url":"/admin/ceilometer/ceilometerservice/$id$/",
+      "icon_url":null,
+      "public_key":null,
+      "service_specific_id":null,
+      "service_specific_attribute":"{\"ceilometer_pub_sub_url\": \"http://10.11.10.1:4455/\"}"
+   },
+   {
+      "humanReadableName":"service_sflow",
+      "id":7,
+      "created":"2016-02-17T19:36:09.339Z",
+      "updated":"2016-02-17T20:01:35.518Z",
+      "enacted":null,
+      "policed":null,
+      "backend_register":"{\"next_run\": 1455768095.518195, \"last_failure\": 1455739295.518198, \"last_success\": 1455737795.306011, \"exponent\": 293, \"failures\": 293}",
+      "backend_status":"2 - Exception('defer object service_sflow due to waiting on instance.instance_name',)",
+      "deleted":false,
+      "write_protect":false,
+      "lazy_blocked":false,
+      "no_sync":false,
+      "description":null,
+      "enabled":true,
+      "kind":"sflow",
+      "name":"service_sflow",
+      "versionNumber":"",
+      "published":true,
+      "view_url":"/admin/ceilometer/sflowservice/$id$/",
+      "icon_url":null,
+      "public_key":null,
+      "service_specific_id":null,
+      "service_specific_attribute":"{\"sflow_api_port\": 33333, \"sflow_port\": 6343}"
+   },
+   {
+      "humanReadableName":"service_ONOS_vOLT",
+      "id":4,
+      "created":"2016-02-17T19:36:04.840Z",
+      "updated":"2016-02-17T20:01:35.987Z",
+      "enacted":null,
+      "policed":null,
+      "backend_register":"{\"next_run\": 1455768095.987071, \"failures\": 282, \"last_success\": 1455737792.664808, \"exponent\": 282, \"last_failure\": 1455739295.987074}",
+      "backend_status":"2 - Exception('defer object service_ONOS_vOLT due to waiting on instance.instance_name',)",
+      "deleted":false,
+      "write_protect":false,
+      "lazy_blocked":false,
+      "no_sync":false,
+      "description":null,
+      "enabled":true,
+      "kind":"onos",
+      "name":"service_ONOS_vOLT",
+      "versionNumber":"",
+      "published":true,
+      "view_url":"/admin/onos/onosservice/$id$/",
+      "icon_url":null,
+      "public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC0bhkFHg3DxtQY1S0bN4nV2USTO2scHIrTO/WhZYFB9cqxKJPPlayMzi7sJxZFjsEPG9+gUJn7942eObs0mWkn7eIbph1rgKDhh2ZT6GFdJojgaRr0E3HhjmdHXF3IkCEz0DZ1aiBRX0dAEcp+B7eHvcg9QmBUN9TWhMlN82EKwMtWlrMwAqycNEcPiKiwMC3SPNPrq5qTrxIlzMG8Q51Z1b0FYx2oP0E44zecquFF8qfwoVbA48qT0fdPIdcQ0otEdsGaOxxurOPA86q1zYg60w+Hsygl8L2UpyUqEuXKm0OuhckCmCkcPlEysMAty0bx/9M3DwSkMJdOj81Jl+Bd teone@ctl.teone.xos-pg0.clemson.cloudlab.us\n",
+      "service_specific_id":null,
+      "service_specific_attribute":"{\"no_container\": false}"
+   },
+   {
+      "humanReadableName":"service_ONOS_vBNG",
+      "id":5,
+      "created":"2016-02-17T19:36:04.917Z",
+      "updated":"2016-02-17T20:01:36.011Z",
+      "enacted":null,
+      "policed":null,
+      "backend_register":"{\"next_run\": 1455768096.011113, \"failures\": 282, \"last_success\": 1455737792.697535, \"exponent\": 282, \"last_failure\": 1455739296.011116}",
+      "backend_status":"2 - Exception('defer object service_ONOS_vBNG due to waiting on instance.instance_name',)",
+      "deleted":false,
+      "write_protect":false,
+      "lazy_blocked":false,
+      "no_sync":false,
+      "description":null,
+      "enabled":true,
+      "kind":"onos",
+      "name":"service_ONOS_vBNG",
+      "versionNumber":"",
+      "published":true,
+      "view_url":"/admin/onos/onosservice/$id$/",
+      "icon_url":null,
+      "public_key":"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC0bhkFHg3DxtQY1S0bN4nV2USTO2scHIrTO/WhZYFB9cqxKJPPlayMzi7sJxZFjsEPG9+gUJn7942eObs0mWkn7eIbph1rgKDhh2ZT6GFdJojgaRr0E3HhjmdHXF3IkCEz0DZ1aiBRX0dAEcp+B7eHvcg9QmBUN9TWhMlN82EKwMtWlrMwAqycNEcPiKiwMC3SPNPrq5qTrxIlzMG8Q51Z1b0FYx2oP0E44zecquFF8qfwoVbA48qT0fdPIdcQ0otEdsGaOxxurOPA86q1zYg60w+Hsygl8L2UpyUqEuXKm0OuhckCmCkcPlEysMAty0bx/9M3DwSkMJdOj81Jl+Bd teone@ctl.teone.xos-pg0.clemson.cloudlab.us\n",
+      "service_specific_id":null,
+      "service_specific_attribute":"{\"no_container\": false}"
+   }
+]
\ No newline at end of file
diff --git a/views/ngXosViews/diagnostic/mocks/data/subscribers.json b/views/ngXosViews/diagnostic/mocks/data/subscribers.json
new file mode 100644
index 0000000..3642257
--- /dev/null
+++ b/views/ngXosViews/diagnostic/mocks/data/subscribers.json
@@ -0,0 +1,20 @@
+[
+   {
+      "humanReadableName":"My House",
+      "id":1,
+      "created":"2016-02-17T19:36:04.167Z",
+      "updated":"2016-02-17T19:36:05.413Z",
+      "enacted":null,
+      "policed":null,
+      "backend_register":"{}",
+      "backend_status":"0 - Provisioning in progress",
+      "deleted":false,
+      "write_protect":false,
+      "lazy_blocked":false,
+      "no_sync":false,
+      "kind":"CordSubscriberRoot",
+      "name":"My House",
+      "service_specific_attribute":"{\"url_filter_enable\": false, \"cdn_enable\": false, \"url_filter_level\": \"R\", \"users\": [{\"mac\": \"01:02:03:04:05:06\", \"level\": \"PG_13\", \"id\": 0, \"name\": \"Mom's PC\"}, {\"mac\": \"34:36:3B:C9:B6:A6\", \"id\": 1, \"name\": \"Jill's Laptop\", \"level\": \"PG_13\"}, {\"mac\": \"68:5B:35:9D:91:D5\", \"level\": \"PG_13\", \"id\": 2, \"name\": \"Jack's Laptop\"}, {\"id\": 3, \"mac\": \"90:E2:BA:82:F9:75\", \"name\": \"Dad's PC\", \"level\": \"PG_13\"}], \"firewall_enable\": false}",
+      "service_specific_id":"123"
+   }
+]
\ No newline at end of file
diff --git a/views/ngXosViews/diagnostic/mocks/data/tenants.json b/views/ngXosViews/diagnostic/mocks/data/tenants.json
new file mode 100644
index 0000000..3f7574c
--- /dev/null
+++ b/views/ngXosViews/diagnostic/mocks/data/tenants.json
@@ -0,0 +1,209 @@
+[
+    {
+        "humanReadableName": "coarse-tenant-1", 
+        "id": 1, 
+        "created": "2016-02-17T19:36:04.259Z", 
+        "updated": "2016-02-17T19:36:04.259Z", 
+        "enacted": null, 
+        "policed": null, 
+        "backend_register": "{}", 
+        "backend_status": "0 - Provisioning in progress", 
+        "deleted": false, 
+        "write_protect": false, 
+        "lazy_blocked": false, 
+        "no_sync": false, 
+        "kind": "coarse", 
+        "provider_service": 1, 
+        "subscriber_service": 2, 
+        "subscriber_tenant": null, 
+        "subscriber_user": null, 
+        "subscriber_root": null, 
+        "service_specific_id": null, 
+        "service_specific_attribute": null, 
+        "connect_method": "na"
+    }, 
+    {
+        "humanReadableName": "coarse-tenant-2", 
+        "id": 2, 
+        "created": "2016-02-17T19:36:04.600Z", 
+        "updated": "2016-02-17T19:36:04.600Z", 
+        "enacted": null, 
+        "policed": null, 
+        "backend_register": "{}", 
+        "backend_status": "0 - Provisioning in progress", 
+        "deleted": false, 
+        "write_protect": false, 
+        "lazy_blocked": false, 
+        "no_sync": false, 
+        "kind": "coarse", 
+        "provider_service": 2, 
+        "subscriber_service": 3, 
+        "subscriber_tenant": null, 
+        "subscriber_user": null, 
+        "subscriber_root": null, 
+        "service_specific_id": null, 
+        "service_specific_attribute": null, 
+        "connect_method": "na"
+    }, 
+    {
+        "humanReadableName": "vCPE-tenant-4", 
+        "id": 4, 
+        "created": "2016-02-17T19:36:04.650Z", 
+        "updated": "2016-02-17T20:55:18.115Z", 
+        "enacted": null, 
+        "policed": null, 
+        "backend_register": "{\"next_run\": 1455771318.072057, \"last_failure\": 1455742518.072061, \"last_success\": 1455737797.006782, \"exponent\": 871, \"failures\": 871}", 
+        "backend_status": "2 - Exception('defer object vCPE-tenant-4 due to waiting on instance.instance_name',)", 
+        "deleted": false, 
+        "write_protect": false, 
+        "lazy_blocked": false, 
+        "no_sync": false, 
+        "kind": "vCPE", 
+        "provider_service": 2, 
+        "subscriber_service": null, 
+        "subscriber_tenant": "3", 
+        "subscriber_user": null, 
+        "subscriber_root": null, 
+        "service_specific_id": null, 
+        "service_specific_attribute": "{\"instance_id\": 1, \"creator_id\": 1}", 
+        "connect_method": "na"
+    }, 
+    {
+        "humanReadableName": "ceilometer-tenant-8", 
+        "id": 8, 
+        "created": "2016-02-17T19:36:09.370Z", 
+        "updated": "2016-02-17T20:55:19.823Z", 
+        "enacted": null, 
+        "policed": null, 
+        "backend_register": "{\"next_run\": 1455771319.823556, \"failures\": 874, \"last_success\": 1455737795.314296, \"exponent\": 874, \"last_failure\": 1455742519.823559}", 
+        "backend_status": "2 - Exception('defer object ceilometer-tenant-8 due to waiting on instance.instance_name',)", 
+        "deleted": false, 
+        "write_protect": false, 
+        "lazy_blocked": false, 
+        "no_sync": false, 
+        "kind": "ceilometer", 
+        "provider_service": 6, 
+        "subscriber_service": null, 
+        "subscriber_tenant": null, 
+        "subscriber_user": null, 
+        "subscriber_root": null, 
+        "service_specific_id": null, 
+        "service_specific_attribute": "{\"instance_id\": 7, \"creator_id\": 1, \"use_same_instance_for_multiple_tenants\": true}", 
+        "connect_method": "na"
+    }, 
+    {
+        "humanReadableName": "vBNG-tenant-5", 
+        "id": 5, 
+        "created": "2016-02-17T19:36:04.769Z", 
+        "updated": "2016-02-17T20:55:21.385Z", 
+        "enacted": null, 
+        "policed": null, 
+        "backend_register": "{\"next_run\": 1455771321.384039, \"last_failure\": 1455742521.384043, \"last_success\": 1455737796.18277, \"exponent\": 881, \"failures\": 881}", 
+        "backend_status": "2 - Exception('defer object vBNG-tenant-5 due to does not have a WAN IP yet',)", 
+        "deleted": false, 
+        "write_protect": false, 
+        "lazy_blocked": false, 
+        "no_sync": false, 
+        "kind": "vBNG", 
+        "provider_service": 1, 
+        "subscriber_service": null, 
+        "subscriber_tenant": "4", 
+        "subscriber_user": null, 
+        "subscriber_root": null, 
+        "service_specific_id": null, 
+        "service_specific_attribute": null, 
+        "connect_method": "na"
+    }, 
+    {
+        "humanReadableName": "onos-tenant-6", 
+        "id": 6, 
+        "created": "2016-02-17T19:36:05.048Z", 
+        "updated": "2016-02-17T20:41:16.675Z", 
+        "enacted": "2016-02-17T20:41:16.729Z", 
+        "policed": null, 
+        "backend_register": "{\"next_run\": 0, \"last_success\": 1455741676.729897, \"exponent\": 0}", 
+        "backend_status": "1 - OK", 
+        "deleted": false, 
+        "write_protect": false, 
+        "lazy_blocked": false, 
+        "no_sync": false, 
+        "kind": "onos", 
+        "provider_service": 5, 
+        "subscriber_service": 1, 
+        "subscriber_tenant": null, 
+        "subscriber_user": null, 
+        "subscriber_root": null, 
+        "service_specific_id": null, 
+        "service_specific_attribute": "{\"creator_id\": 1, \"dependencies\": \"org.onosproject.proxyarp, org.onosproject.virtualbng, org.onosproject.openflow, org.onosproject.fwd\", \"name\": \"vBNG_ONOS_app\"}", 
+        "connect_method": "na"
+    }, 
+    {
+        "humanReadableName": "vOLT-tenant-3", 
+        "id": 3, 
+        "created": "2016-02-17T19:36:04.631Z", 
+        "updated": "2016-02-17T20:28:30.428Z", 
+        "enacted": null, 
+        "policed": null, 
+        "backend_register": "{}", 
+        "backend_status": "0 - Provisioning in progress", 
+        "deleted": false, 
+        "write_protect": false, 
+        "lazy_blocked": false, 
+        "no_sync": false, 
+        "kind": "vOLT", 
+        "provider_service": 3, 
+        "subscriber_service": null, 
+        "subscriber_tenant": null, 
+        "subscriber_user": null, 
+        "subscriber_root": "http://clnode078.clemson.cloudlab.us:9999/xos/tenantroots/1/", 
+        "service_specific_id": "123", 
+        "service_specific_attribute": "{\"creator_id\": 1, \"c_tag\": \"432\", \"s_tag\": \"222\"}", 
+        "connect_method": "na"
+    }, 
+    {
+        "humanReadableName": "onos-tenant-7", 
+        "id": 7, 
+        "created": "2016-02-17T19:36:05.089Z", 
+        "updated": "2016-02-17T20:40:54.451Z", 
+        "enacted": "2016-02-17T20:40:54.468Z", 
+        "policed": null, 
+        "backend_register": "{\"next_run\": 0, \"last_success\": 1455741654.468755, \"exponent\": 0}", 
+        "backend_status": "1 - OK", 
+        "deleted": false, 
+        "write_protect": false, 
+        "lazy_blocked": false, 
+        "no_sync": false, 
+        "kind": "onos", 
+        "provider_service": 4, 
+        "subscriber_service": 3, 
+        "subscriber_tenant": null, 
+        "subscriber_user": null, 
+        "subscriber_root": null, 
+        "service_specific_id": null, 
+        "service_specific_attribute": "{\"creator_id\": 1, \"dependencies\": \"org.onosproject.openflow-base, org.onosproject.olt, org.ciena.onos.ext_notifier, org.ciena.onos.volt_event_publisher\", \"name\": \"vOLT_ONOS_app\", \"install_dependencies\": \"onos-ext-notifier-1.0-SNAPSHOT.oar, onos-ext-volt-event-publisher-1.0-SNAPSHOT.oar\"}", 
+        "connect_method": "na"
+    },
+    {
+        "humanReadableName": "vCPE-tenant-4", 
+        "id": 14, 
+        "created": "2016-02-17T19:36:04.650Z", 
+        "updated": "2016-02-17T20:55:18.115Z", 
+        "enacted": null, 
+        "policed": null, 
+        "backend_register": "{\"next_run\": 1455771318.072057, \"last_failure\": 1455742518.072061, \"last_success\": 1455737797.006782, \"exponent\": 871, \"failures\": 871}", 
+        "backend_status": "2 - Exception('defer object vCPE-tenant-4 due to waiting on instance.instance_name',)", 
+        "deleted": false, 
+        "write_protect": false, 
+        "lazy_blocked": false, 
+        "no_sync": false, 
+        "kind": "vCPE", 
+        "provider_service": 2, 
+        "subscriber_service": null, 
+        "subscriber_tenant": "3", 
+        "subscriber_user": null, 
+        "subscriber_root": null, 
+        "service_specific_id": null, 
+        "service_specific_attribute": "{\"instance_id\": 11, \"creator_id\": 1}", 
+        "connect_method": "na"
+    }
+]
\ No newline at end of file
diff --git a/views/ngXosViews/diagnostic/mocks/diagnostic.conf.json b/views/ngXosViews/diagnostic/mocks/diagnostic.conf.json
new file mode 100644
index 0000000..9f574fe
--- /dev/null
+++ b/views/ngXosViews/diagnostic/mocks/diagnostic.conf.json
@@ -0,0 +1,33 @@
+[
+  {
+    "url": "subscribers",
+    "base": "xos/",
+    "methods": ["GET"]
+  },
+  {
+    "url": "services",
+    "base": "xos/",
+    "methods": ["GET"]
+  },
+  {
+    "url": "tenants",
+    "base": "xos/",
+    "methods": ["GET"]
+  },
+  {
+    "url": "nodes",
+    "base": "xos/",
+    "methods": ["GET"]
+  },
+  {
+    "url": "instances",
+    "base": "xos/",
+    "methods": ["GET"],
+    "param": "id"
+  },
+  {
+    "url": "meterstatistics",
+    "base": "xoslib/",
+    "methods": ["GET"]
+  }
+]
\ No newline at end of file
diff --git a/views/ngXosViews/diagnostic/package.json b/views/ngXosViews/diagnostic/package.json
index f77d454..1a9b456 100644
--- a/views/ngXosViews/diagnostic/package.json
+++ b/views/ngXosViews/diagnostic/package.json
@@ -5,7 +5,9 @@
   "scripts": {
     "prestart": "npm install && bower install",
     "start": "gulp serve",
+    "dev": "NODE_ENV=local gulp serve",
     "prebuild": "npm install && bower install",
+    "server": "easy-mocker -c ./mocks/diagnostic.conf.json -d ./mocks/data",
     "build": "gulp",
     "test": "karma start",
     "lint": "eslint src/js/"
@@ -21,6 +23,7 @@
   "devDependencies": {
     "browser-sync": "^2.9.11",
     "del": "^2.0.2",
+    "easy-mocker": "^1.2.0",
     "eslint": "^1.8.0",
     "eslint-plugin-angular": "linkmesrl/eslint-plugin-angular",
     "gulp": "^3.9.0",
@@ -36,14 +39,6 @@
     "gulp-replace": "^0.5.4",
     "gulp-uglify": "^1.4.2",
     "http-proxy": "^1.12.0",
-    "jasmine-core": "^2.4.1",
-    "karma-jasmine": "^0.3.6",
-    "lodash": "^3.10.1",
-    "proxy-middleware": "^0.15.0",
-    "run-sequence": "^1.1.4",
-    "wiredep": "^3.0.0-beta",
-    "wrench": "^1.5.8",
-    "phantomjs": "^1.9.19",
     "ink-docstrap": "^0.5.2",
     "jasmine-core": "~2.3.4",
     "karma": "^0.13.14",
@@ -52,6 +47,12 @@
     "karma-jasmine": "~0.3.6",
     "karma-mocha-reporter": "~1.1.1",
     "karma-ng-html2js-preprocessor": "^0.2.0",
-    "karma-phantomjs-launcher": "~0.2.1"
+    "karma-phantomjs-launcher": "~0.2.1",
+    "lodash": "^3.10.1",
+    "phantomjs": "^1.9.19",
+    "proxy-middleware": "^0.15.0",
+    "run-sequence": "^1.1.4",
+    "wiredep": "^3.0.0-beta",
+    "wrench": "^1.5.8"
   }
 }
diff --git a/views/ngXosViews/diagnostic/src/css/serviceTopology.css b/views/ngXosViews/diagnostic/src/css/serviceTopology.css
index 8b615ec..ebd17e5 100644
--- a/views/ngXosViews/diagnostic/src/css/serviceTopology.css
+++ b/views/ngXosViews/diagnostic/src/css/serviceTopology.css
@@ -193,6 +193,59 @@
     animation:0.5s bounceOutRight ease;
 }
 
+/* LOADER */
+.loader {
+  font-size: 10px;
+  margin: 150px auto;
+  text-indent: -9999em;
+  width: 11em;
+  height: 11em;
+  border-radius: 50%;
+  background: #ffffff;
+  background: -moz-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
+  background: -webkit-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
+  background: -o-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
+  background: -ms-linear-gradient(left, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
+  background: linear-gradient(to right, #ffffff 10%, rgba(255, 255, 255, 0) 42%);
+  position: relative;
+  animation: load3 1.4s infinite linear;
+  transform: translateZ(0);
+}
+.loader:before {
+  width: 50%;
+  height: 50%;
+  background: #105E9E;
+  border-radius: 100% 0 0 0;
+  position: absolute;
+  top: 0;
+  left: 0;
+  content: '';
+}
+.loader:after {
+  background: #fff;
+  width: 75%;
+  height: 75%;
+  border-radius: 50%;
+  content: '';
+  margin: auto;
+  position: absolute;
+  top: 0;
+  left: 0;
+  bottom: 0;
+  right: 0;
+}
+
+@keyframes load3 {
+  0% {
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+  100% {
+    -webkit-transform: rotate(360deg);
+    transform: rotate(360deg);
+  }
+}
+
 /* ANIMATIONS */
 
 @keyframes bounceInRight {
diff --git a/views/ngXosViews/diagnostic/src/js/diagnostic.js b/views/ngXosViews/diagnostic/src/js/diagnostic.js
index 2b31f31..63ab420 100644
--- a/views/ngXosViews/diagnostic/src/js/diagnostic.js
+++ b/views/ngXosViews/diagnostic/src/js/diagnostic.js
@@ -8,6 +8,8 @@
       templateUrl: 'templates/diagnostic.tpl.html',
       controllerAs: 'vm',
       controller: function(Subscribers, ServiceRelation){
+        this.loader = true;
+        this.error = false;
         Subscribers.query().$promise
         .then((subscribers) => {
           this.subscribers = subscribers;
@@ -15,6 +17,13 @@
         })
         .then((serviceChain) => {
           this.serviceChain = serviceChain;
+        })
+        .catch(e => {
+          throw new Error(e);
+          this.error = e;
+        })
+        .finally(() => {
+          this.loader = false;
         });
       }
     }
diff --git a/views/ngXosViews/diagnostic/src/js/serviceTopology.js b/views/ngXosViews/diagnostic/src/js/serviceTopology.js
index b358abf..3d602fe 100644
--- a/views/ngXosViews/diagnostic/src/js/serviceTopology.js
+++ b/views/ngXosViews/diagnostic/src/js/serviceTopology.js
@@ -32,6 +32,8 @@
           const width = el.clientWidth - (serviceTopologyConfig.widthMargin * 2);
           const height = el.clientHeight - (serviceTopologyConfig.heightMargin * 2);
 
+          console.log(el.clientWidth, el.clientHeight);
+
           const treeLayout = d3.layout.tree()
             .size([height, width]);
 
diff --git a/views/ngXosViews/diagnostic/src/templates/diagnostic.tpl.html b/views/ngXosViews/diagnostic/src/templates/diagnostic.tpl.html
index ff88b49..172b9f7 100644
--- a/views/ngXosViews/diagnostic/src/templates/diagnostic.tpl.html
+++ b/views/ngXosViews/diagnostic/src/templates/diagnostic.tpl.html
@@ -1,16 +1,30 @@
 <div class="container-fluid">
-  <div class="onethird-height">
-    <service-topology service-chain="vm.serviceChain"></service-topology>
+  <div ng-hide="vm.error && vm.loader">
+    <div class="onethird-height">
+      <service-topology service-chain="vm.serviceChain"></service-topology>
+    </div>
+    <div class="twothird-height">
+      <!-- <div class="panel panel-primary subscriber-select">
+        <div class="panel-heading">Select a subscriber:</div>
+        <div class="panel-body">
+          <select class="form-control" ng-options="s as s.name for s in vm.subscribers" ng-model="vm.selectedSubscriber">
+            <option value="">Select a subscriber...</option>
+          </select>
+        </div>
+      </div> -->
+      <logic-topology ng-if="vm.subscribers" subscribers="vm.subscribers" selected="vm.selectedSubscriber"></logic-topology>
+    </div>
   </div>
-  <div class="twothird-height">
-    <!-- <div class="panel panel-primary subscriber-select">
-      <div class="panel-heading">Select a subscriber:</div>
-      <div class="panel-body">
-        <select class="form-control" ng-options="s as s.name for s in vm.subscribers" ng-model="vm.selectedSubscriber">
-          <option value="">Select a subscriber...</option>
-        </select>
+  <div class="row" ng-show="vm.error">
+    <div class="col-xs-12">
+      <div class="alert alert-danger">
+        {{vm.error}}
       </div>
-    </div> -->
-    <logic-topology ng-if="vm.subscribers" subscribers="vm.subscribers" selected="vm.selectedSubscriber"></logic-topology>
+    </div>
+  </div>
+  <div class="row" ng-show="vm.loader">
+    <div class="col-xs-12">
+      <div class="loader">Loading</div>
+    </div>
   </div>
 </div>
\ No newline at end of file