1 import { Component, Input, OnChanges, OnInit, TemplateRef, ViewChild } from '@angular/core';
3 import { I18n } from '@ngx-translate/i18n-polyfill';
4 import { Observable } from 'rxjs';
6 import { CephServiceService } from '../../../../shared/api/ceph-service.service';
7 import { HostService } from '../../../../shared/api/host.service';
8 import { TableComponent } from '../../../../shared/datatable/table/table.component';
9 import { CdTableColumn } from '../../../../shared/models/cd-table-column';
10 import { CdTableFetchDataContext } from '../../../../shared/models/cd-table-fetch-data-context';
11 import { Daemon } from '../../../../shared/models/daemon.interface';
14 selector: 'cd-service-daemon-list',
15 templateUrl: './service-daemon-list.component.html',
16 styleUrls: ['./service-daemon-list.component.scss']
18 export class ServiceDaemonListComponent implements OnInit, OnChanges {
19 @ViewChild(TableComponent, { static: true })
20 table: TableComponent;
21 @ViewChild('lastSeenTpl', { static: true })
22 lastSeenTpl: TemplateRef<any>;
30 daemons: Daemon[] = [];
31 columns: CdTableColumn[] = [];
35 private hostService: HostService,
36 private cephServiceService: CephServiceService
42 name: this.i18n('Hostname'),
48 name: this.i18n('Daemon type'),
54 name: this.i18n('Daemon ID'),
60 name: this.i18n('Container ID'),
66 name: this.i18n('Container Image name'),
67 prop: 'container_image_name',
72 name: this.i18n('Container Image ID'),
73 prop: 'container_image_id',
78 name: this.i18n('Version'),
84 name: this.i18n('Status'),
90 name: this.i18n('Status Description'),
96 name: this.i18n('Last Refreshed'),
105 this.table.reloadData();
108 updateData(daemons: Daemon[]) {
109 this.daemons = daemons;
112 getDaemons(context: CdTableFetchDataContext) {
113 let observable: Observable<Daemon[]>;
115 observable = this.hostService.getDaemons(this.hostname);
116 } else if (this.serviceName) {
117 observable = this.cephServiceService.getDaemons(this.serviceName);
122 observable.subscribe(
123 (daemons: Daemon[]) => {
124 this.daemons = daemons;