X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=webapp-frontend%2Fsrc%2Fapp%2Fcontrol%2Fcontrol.component.ts;h=067077edde0f77aa2ca030de0a8cfb037529705e;hb=refs%2Fchanges%2F85%2F185%2F1;hp=1520862014ac674268abd5aeb0459d3b6de6bc5e;hpb=e2cbc4d0304646febf7e2cbe0dccdf9840189222;p=portal%2Fric-dashboard.git
diff --git a/webapp-frontend/src/app/control/control.component.ts b/webapp-frontend/src/app/control/control.component.ts
index 15208620..067077ed 100644
--- a/webapp-frontend/src/app/control/control.component.ts
+++ b/webapp-frontend/src/app/control/control.component.ts
@@ -1,6 +1,6 @@
/*-
* ========================LICENSE_START=================================
- * ORAN-OSC
+ * O-RAN-SC
* %%
* Copyright (C) 2019 AT&T Intellectual Property and Nokia
* %%
@@ -17,19 +17,24 @@
* limitations under the License.
* ========================LICENSE_END===================================
*/
-import { Component, OnInit } from '@angular/core';
+import { Component, OnInit, ViewEncapsulation } from '@angular/core';
import { LocalDataSource } from 'ng2-smart-table';
-import { ControlService } from '../services/control/control.service';
+import { XappMgrService } from '../services/xapp-mgr/xapp-mgr.service';
import { Router } from '@angular/router';
+import { ConfirmDialogService } from './../services/ui/confirm-dialog.service'
+import { NotificationService } from './../services/ui/notification.service'
+import { XMXapp } from '../interfaces/xapp-mgr.types';
+
@Component({
selector: 'app-control',
templateUrl: './control.component.html',
- styleUrls: ['./control.component.css']
+ styleUrls: ['./control.component.css'],
+ encapsulation: ViewEncapsulation.Emulated,
})
-export class ControlComponent {
+export class ControlComponent implements OnInit {
- settings = {
+ settings = {
hideSubHeader: true,
actions: {
columnTitle: 'Actions',
@@ -37,56 +42,104 @@ export class ControlComponent {
edit: false,
delete: false,
custom: [
- { name: 'view', title: 'view', },
- ],
+ { name: 'view', title: 'visibility', },
+ { name: 'undeploy', title: 'close', },
+ ],
position: 'right'
},
columns: {
- id: {
- title: 'ID',
- type: 'number',
- },
- xAppName: {
+ xapp: {
title: 'xApp Name',
type: 'string',
},
- xAppType: {
- title: 'xApp Type',
+ name: {
+ title: 'Instance Name',
type: 'string',
},
- podId: {
- title: 'Pod ID',
- type: 'number',
- },
- k8Status: {
- title: 'k8 Status',
+ status: {
+ title: 'Status',
type: 'string',
},
- age: {
- title: 'Age',
+ ip: {
+ title: 'IP',
type: 'string',
},
+ port: {
+ title: 'Port',
+ type: 'integer',
+ },
+ txMessages: {
+ title: 'txMessages',
+ type: 'array',
+ },
+ rxMessages: {
+ title: 'rxMessages',
+ type: 'array',
+ },
},
};
source: LocalDataSource = new LocalDataSource();
- constructor(private service: ControlService, private router: Router) {
- const data = this.service.getData();
- this.source.load(data);
+ constructor(
+ private xappMgrSvc: XappMgrService,
+ private router: Router,
+ private confirmDialogService: ConfirmDialogService,
+ private notification: NotificationService) { }
+
+ ngOnInit() {
+ this.xappMgrSvc.getAll().subscribe((xapps: XMXapp[]) => this.source.load(this.getInstance(xapps)));
+ }
+
+ onxAppControlAction(event) {
+ switch (event.action) {
+ case 'view':
+ this.view(event);
+ break;
+ case 'undeploy':
+ this.undeploy(event);
+ break;
+ }
}
view(event): void {
- const url = '/xapp';
- this.router.navigate([url, event]).then( (e) => {
- if (e) {
- console.log(event.data);
- console.log('Navigation is successful!');
- } else {
- console.log('Navigation has failed!');
+ const url = '/xapp';
+ this.router.navigate([url, event]);
+ }
+
+ undeploy(event): void {
+ this.confirmDialogService.openConfirmDialog('Are you sure you want to undeploy this xApp ?')
+ .afterClosed().subscribe(res => {
+ if (res) {
+ this.xappMgrSvc.undeployXapp(event.data.xapp).subscribe(
+ response => {
+ this.xappMgrSvc.getAll().subscribe((xapps: XMXapp[]) => this.source.load(this.getInstance(xapps)));
+ switch (response.status) {
+ case 200:
+ this.notification.success('xApp undeployed successfully!');
+ break;
+ default:
+ this.notification.warn('xApp undeploy failed.');
+ }
}
- });
+ );
+ }
+ });
+ }
+
+ getInstance(allxappdata: XMXapp[]) {
+ const xAppInstances = [];
+ for (const xappindex in allxappdata) {
+ const instancelist = allxappdata[xappindex].instances;
+ for (const instanceindex in instancelist) {
+ var instance: any;
+ instance = instancelist[instanceindex];
+ instance.xapp = allxappdata[xappindex].name;
+ xAppInstances.push(instance);
+ }
+ }
+ return xAppInstances;
}