From 7011347fcf6e2ccd06e39deb7459afa48af44be1 Mon Sep 17 00:00:00 2001 From: jh245g Date: Wed, 19 Jun 2019 15:13:24 -0400 Subject: [PATCH] Add feature resilient to missing instance data Change-Id: If2393623616ad44bf3f9438f9a7c02d45e717340 Signed-off-by: Jun (Nicolas) Hu Issue-ID: RICPLT-1513 --- docs/release-notes.rst | 3 ++- .../src/app/control/control.component.html | 4 ++-- .../src/app/control/control.datasource.ts | 28 ++++++++++++++++++---- 3 files changed, 27 insertions(+), 8 deletions(-) diff --git a/docs/release-notes.rst b/docs/release-notes.rst index 458a4ec4..b263846d 100644 --- a/docs/release-notes.rst +++ b/docs/release-notes.rst @@ -20,7 +20,7 @@ RIC Dashboard Release Notes =========================== -Version 1.0.4, 17 June 2019 +Version 1.0.4, 19 June 2019 --------------------------- * Add AC xApp neighbor control screen * Add ANR xApp neighbor cell relation table @@ -33,6 +33,7 @@ Version 1.0.4, 17 June 2019 * Revise config property keys to use URL (not basepath) * Left menu overlap main content fix * Extend back-end controllers to return error details +* Add feature resilient to malformed instance data Version 1.0.3, 28 May 2019 -------------------------- diff --git a/webapp-frontend/src/app/control/control.component.html b/webapp-frontend/src/app/control/control.component.html index 5ae35aa0..700efd9c 100644 --- a/webapp-frontend/src/app/control/control.component.html +++ b/webapp-frontend/src/app/control/control.component.html @@ -68,13 +68,13 @@
txMessages:
-
  • +
  • {{rxmessage}}
  • rxMessages:
    -
  • +
  • {{txmessage}}
  • diff --git a/webapp-frontend/src/app/control/control.datasource.ts b/webapp-frontend/src/app/control/control.datasource.ts index 30752efa..60f8563e 100644 --- a/webapp-frontend/src/app/control/control.datasource.ts +++ b/webapp-frontend/src/app/control/control.datasource.ts @@ -25,7 +25,7 @@ import { BehaviorSubject } from 'rxjs/BehaviorSubject'; import { Observable } from 'rxjs/Observable'; import { of } from 'rxjs/observable/of'; import { catchError, finalize, map } from 'rxjs/operators'; -import { XappControlRow, XMXapp } from '../interfaces/xapp-mgr.types'; +import { XappControlRow, XMXapp, XMXappInstance } from '../interfaces/xapp-mgr.types'; import { XappMgrService } from '../services/xapp-mgr/xapp-mgr.service'; export class ControlDataSource extends DataSource { @@ -36,6 +36,15 @@ export class ControlDataSource extends DataSource { public loading$ = this.loadingSubject.asObservable(); + emptyInstances: XMXappInstance = + { ip: null, + name: null, + port: null, + status: null, + rxMessages: [], + txMessages: [], + }; + constructor(private xappMgrSvc: XappMgrService, private sort: MatSort) { super(); }; @@ -47,7 +56,7 @@ export class ControlDataSource extends DataSource { catchError(() => of([])), finalize(() => this.loadingSubject.next(false)) ) - .subscribe(xApps => this.xAppInstancesSubject.next(this.getInstance(xApps)) ) + .subscribe(xApps => this.xAppInstancesSubject.next(this.getInstance(xApps))) } connect(collectionViewer: CollectionViewer): Observable { @@ -66,16 +75,25 @@ export class ControlDataSource extends DataSource { } getInstance(allxappdata: XMXapp[]) { - const xAppInstances: XappControlRow[]= []; + const xAppInstances: XappControlRow[] = []; for (const xappindex in allxappdata) { const instancelist = allxappdata[xappindex].instances; - for (const instanceindex in instancelist) { + if (!instancelist) { var instance: XappControlRow = { xapp: allxappdata[xappindex].name, - instance: instancelist[instanceindex] + instance: this.emptyInstances } xAppInstances.push(instance); } + else { + for (const instanceindex in instancelist) { + var instance: XappControlRow = { + xapp: allxappdata[xappindex].name, + instance: instancelist[instanceindex] + } + xAppInstances.push(instance); + } + } } return xAppInstances; } -- 2.16.6