]> git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/services/service-daemon-list/service-daemon-list.component.html
fc782c5658d1f168abf17c726d4746a27cf809b5
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / ceph / cluster / services / service-daemon-list / service-daemon-list.component.html
1 <cd-orchestrator-doc-panel *ngIf="showDocPanel"></cd-orchestrator-doc-panel>
2
3 <div *ngIf="flag === 'hostDetails'; else serviceDetailsTpl">
4 <ng-container *ngTemplateOutlet="serviceDaemonDetailsTpl"></ng-container>
5 </div>
6
7 <ng-template #serviceDetailsTpl>
8 <ng-container>
9 <ul ngbNav
10 #nav="ngbNav"
11 class="nav-tabs"
12 cdStatefulTab="service-details">
13 <li ngbNavItem="details">
14 <a ngbNavLink
15 i18n>Details</a>
16 <ng-template ngbNavContent>
17 <ng-container *ngTemplateOutlet="serviceDaemonDetailsTpl"></ng-container>
18 </ng-template>
19 </li>
20 <li ngbNavItem="service_events">
21 <a ngbNavLink
22 i18n>Service Events</a>
23 <ng-template ngbNavContent>
24 <cd-table *ngIf="hasOrchestrator"
25 #serviceTable
26 [data]="services"
27 [columns]="serviceColumns"
28 columnMode="flex"
29 (fetchData)="getServices($event)">
30 </cd-table>
31 </ng-template>
32 </li>
33 </ul>
34 <div [ngbNavOutlet]="nav"></div>
35 </ng-container>
36 </ng-template>
37
38 <ng-template #statusTpl
39 let-row="row">
40 <span class="badge"
41 [ngClass]="row | pipeFunction:getStatusClass">
42 {{ row.status_desc }}
43 </span>
44 </ng-template>
45
46 <ng-template #listTpl
47 let-events="value">
48 <ul class="list-group list-group-flush"
49 *ngIf="events?.length else noEventsAvailable">
50 <li class="list-group-item"
51 *ngFor="let event of events; trackBy:trackByFn">
52 <b>{{ event.created | relativeDate }} - </b>
53 <span class="badge badge-info">{{ event.subject }}</span><br>
54 <span *ngIf="event.level === 'INFO'">
55 <i [ngClass]="[icons.infoCircle]"
56 aria-hidden="true"></i>
57 </span>
58 <span *ngIf="event.level === 'ERROR'">
59 <i [ngClass]="[icons.warning]"
60 aria-hidden="true"></i>
61 </span>
62 {{ event.message }}
63 </li>
64 </ul>
65 <ng-template #noEventsAvailable>
66 <div *ngIf="events?.length === 0"
67 class="list-group-item">
68 <span>No data available</span>
69 </div>
70 </ng-template>
71 </ng-template>
72
73 <ng-template #serviceDaemonDetailsTpl>
74 <cd-table *ngIf="hasOrchestrator"
75 #daemonsTable
76 [data]="daemons"
77 selectionType="single"
78 [columns]="columns"
79 columnMode="flex"
80 identifier="daemon_name"
81 (fetchData)="getDaemons($event)"
82 (updateSelection)="updateSelection($event)">
83 <cd-table-actions id="service-daemon-list-actions"
84 class="table-actions"
85 [selection]="selection"
86 [permission]="permissions.hosts"
87 [tableActions]="tableActions">
88 </cd-table-actions>
89 </cd-table>
90 </ng-template>
91
92 <ng-template #cpuTpl
93 let-row="row">
94 <cd-usage-bar [total]="total"
95 [calculatePerc]="false"
96 [used]="row.cpu_percentage"
97 [isBinary]="false"
98 [warningThreshold]="warningThreshold"
99 [errorThreshold]="errorThreshold">
100 </cd-usage-bar>
101 </ng-template>