diff options
Diffstat (limited to 'src/pybind/mgr/dashboard/frontend/src/app/ceph/block/mirroring/daemon-list/daemon-list.component.ts')
-rw-r--r-- | src/pybind/mgr/dashboard/frontend/src/app/ceph/block/mirroring/daemon-list/daemon-list.component.ts | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/mirroring/daemon-list/daemon-list.component.ts b/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/mirroring/daemon-list/daemon-list.component.ts new file mode 100644 index 000000000..d55197003 --- /dev/null +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/mirroring/daemon-list/daemon-list.component.ts @@ -0,0 +1,62 @@ +import { Component, OnDestroy, OnInit, TemplateRef, ViewChild } from '@angular/core'; + +import { Subscription } from 'rxjs'; + +import { RbdMirroringService } from '~/app/shared/api/rbd-mirroring.service'; +import { TableStatusViewCache } from '~/app/shared/classes/table-status-view-cache'; +import { CephShortVersionPipe } from '~/app/shared/pipes/ceph-short-version.pipe'; + +@Component({ + selector: 'cd-mirroring-daemons', + templateUrl: './daemon-list.component.html', + styleUrls: ['./daemon-list.component.scss'] +}) +export class DaemonListComponent implements OnInit, OnDestroy { + @ViewChild('healthTmpl', { static: true }) + healthTmpl: TemplateRef<any>; + + subs: Subscription; + + data: []; + columns: {}; + + tableStatus = new TableStatusViewCache(); + + constructor( + private rbdMirroringService: RbdMirroringService, + private cephShortVersionPipe: CephShortVersionPipe + ) {} + + ngOnInit() { + this.columns = [ + { prop: 'instance_id', name: $localize`Instance`, flexGrow: 2 }, + { prop: 'id', name: $localize`ID`, flexGrow: 2 }, + { prop: 'server_hostname', name: $localize`Hostname`, flexGrow: 2 }, + { + prop: 'version', + name: $localize`Version`, + pipe: this.cephShortVersionPipe, + flexGrow: 2 + }, + { + prop: 'health', + name: $localize`Health`, + cellTemplate: this.healthTmpl, + flexGrow: 1 + } + ]; + + this.subs = this.rbdMirroringService.subscribeSummary((data) => { + this.data = data.content_data.daemons; + this.tableStatus = new TableStatusViewCache(data.status); + }); + } + + ngOnDestroy(): void { + this.subs.unsubscribe(); + } + + refresh() { + this.rbdMirroringService.refresh(); + } +} |