Remove ONOSes from service chain
diff --git a/views/ngXosViews/diagnostic/spec/logicTopologyHelper.test.js b/views/ngXosViews/diagnostic/spec/logicTopologyHelper.test.js
index 94307f5..dc1f1e5 100644
--- a/views/ngXosViews/diagnostic/spec/logicTopologyHelper.test.js
+++ b/views/ngXosViews/diagnostic/spec/logicTopologyHelper.test.js
@@ -9,7 +9,7 @@
 
     var svgWidth = 900;
 
-    beforeEach(module('xos.serviceTopology'));
+    beforeEach(module('xos.diagnostic'));
 
     // inject the rackHelper service
     beforeEach(inject(function (_LogicTopologyHelper_, _serviceTopologyConfig_) {
diff --git a/views/ngXosViews/diagnostic/spec/rackHelper.test.js b/views/ngXosViews/diagnostic/spec/rackHelper.test.js
index 9f11686..145a2e5 100644
--- a/views/ngXosViews/diagnostic/spec/rackHelper.test.js
+++ b/views/ngXosViews/diagnostic/spec/rackHelper.test.js
@@ -47,7 +47,7 @@
     // results
     var cp1, cp2, cp3, rack, instancePos, nodePos;
 
-    beforeEach(module('xos.serviceTopology'));
+    beforeEach(module('xos.diagnostic'));
 
     // inject the rackHelper service
     beforeEach(inject(function (_RackHelper_, _serviceTopologyConfig_) {
diff --git a/views/ngXosViews/diagnostic/spec/serviceChain.test.js b/views/ngXosViews/diagnostic/spec/serviceChain.test.js
index 8dfa02d..d8a3a23 100644
--- a/views/ngXosViews/diagnostic/spec/serviceChain.test.js
+++ b/views/ngXosViews/diagnostic/spec/serviceChain.test.js
@@ -4,7 +4,7 @@
   
   var Service;
 
-  beforeEach(module('xos.serviceTopology'));
+  beforeEach(module('xos.diagnostic'));
   beforeEach(module('templates'));
 
   // inject the cartService
@@ -136,10 +136,10 @@
       expect(tree.children[0].children[0].tenant).toEqual({ id: 1, provider_service: 2, subscriber_tenant: 4, subscriber_service: 1 });;
       expect(tree.children[0].children[0].children[0].name).toBe('service-3');
 
-      expect(tree.children[0].children[0].children[0].children[0].name).toBe('Router');
+      // expect(tree.children[0].children[0].children[0].children[0].name).toBe('Router');
 
       expect(tree.children[0].children[1].name).toBe('service-4');
-      expect(tree.children[0].children[1].children[0].name).toBe('Router');
+      // expect(tree.children[0].children[1].children[0].name).toBe('Router');
     });
   });
 
diff --git a/views/ngXosViews/diagnostic/src/js/diagnostic.js b/views/ngXosViews/diagnostic/src/js/diagnostic.js
index 6638a95..419dd7c 100644
--- a/views/ngXosViews/diagnostic/src/js/diagnostic.js
+++ b/views/ngXosViews/diagnostic/src/js/diagnostic.js
@@ -17,6 +17,8 @@
         })
         .then((serviceChain) => {
           this.serviceChain = serviceChain;
+          // debug helper
+          loadSubscriber(this.subscribers[0]);
         })
         .catch(e => {
           throw new Error(e);
@@ -26,7 +28,7 @@
           this.loader = false;
         });
 
-        $rootScope.$on('subscriber.selected', (evt, subscriber) => {
+        const loadSubscriber = (subscriber) => {
           ServiceRelation.getBySubscriber(subscriber)
           .then((serviceChain) => {
             this.serviceChain = serviceChain;
@@ -37,8 +39,13 @@
             this.selectedSubscriber = subscriber;
             ChartData.currentSubscriber = subscriber;
           });
+        };
+
+        $rootScope.$on('subscriber.selected', (evt, subscriber) => {
+          loadSubscriber(subscriber);
         });
+
       }
     }
   });
-})(); 
\ No newline at end of file
+})();
diff --git a/views/ngXosViews/diagnostic/src/js/rest_services.js b/views/ngXosViews/diagnostic/src/js/rest_services.js
index 5677f30..91242b3 100644
--- a/views/ngXosViews/diagnostic/src/js/rest_services.js
+++ b/views/ngXosViews/diagnostic/src/js/rest_services.js
@@ -313,6 +313,10 @@
       };
 
       lodash.forEach(levelServices, (service) => {
+        if(service.humanReadableName === 'service_ONOS_vBNG' || service.humanReadableName === 'service_ONOS_vOLT'){
+          // remove ONOSes from service chart
+          return;
+        }
         let tenant = lodash.find(tenants, {subscriber_tenant: rootTenant.id, provider_service: service.id});
         tree.children.push(buildLevel(tenants, unlinkedServices, service, tenant, rootService.humanReadableName));
       });
diff --git a/xos/core/xoslib/static/js/xosDiagnostic.js b/xos/core/xoslib/static/js/xosDiagnostic.js
index 57ba552..2c5ddf7 100644
--- a/xos/core/xoslib/static/js/xosDiagnostic.js
+++ b/xos/core/xoslib/static/js/xosDiagnostic.js
@@ -627,6 +627,10 @@
       };
 
       lodash.forEach(levelServices, function (service) {
+        if (service.humanReadableName === 'service_ONOS_vBNG' || service.humanReadableName === 'service_ONOS_vOLT') {
+          // remove ONOSes from service chart
+          return;
+        }
         var tenant = lodash.find(tenants, { subscriber_tenant: rootTenant.id, provider_service: service.id });
         tree.children.push(buildLevel(tenants, unlinkedServices, service, tenant, rootService.humanReadableName));
       });
@@ -1584,6 +1588,8 @@
           return ServiceRelation.get();
         }).then(function (serviceChain) {
           _this.serviceChain = serviceChain;
+          // debug helper
+          loadSubscriber(_this.subscribers[0]);
         })['catch'](function (e) {
           throw new Error(e);
           _this.error = e;
@@ -1591,7 +1597,7 @@
           _this.loader = false;
         });
 
-        $rootScope.$on('subscriber.selected', function (evt, subscriber) {
+        var loadSubscriber = function loadSubscriber(subscriber) {
           ServiceRelation.getBySubscriber(subscriber).then(function (serviceChain) {
             _this.serviceChain = serviceChain;
             ChartData.currentServiceChain = serviceChain;
@@ -1600,6 +1606,10 @@
             _this.selectedSubscriber = subscriber;
             ChartData.currentSubscriber = subscriber;
           });
+        };
+
+        $rootScope.$on('subscriber.selected', function (evt, subscriber) {
+          loadSubscriber(subscriber);
         });
       }]
     };