]> git.proxmox.com Git - ceph.git/blob - ceph/src/pybind/mgr/dashboard/frontend/src/app/ceph/cluster/osd/osd-list/osd-list.component.html
afec81d9d1971e2446d5b36768329ee7ae8ecc01
[ceph.git] / ceph / src / pybind / mgr / dashboard / frontend / src / app / ceph / cluster / osd / osd-list / osd-list.component.html
1 <ul ngbNav
2 #nav="ngbNav"
3 class="nav-tabs">
4 <li ngbNavItem>
5 <a ngbNavLink
6 i18n>OSDs List</a>
7 <ng-template ngbNavContent>
8 <cd-table [data]="osds"
9 (fetchData)="getOsdList()"
10 [columns]="columns"
11 selectionType="multiClick"
12 [hasDetails]="true"
13 (setExpandedRow)="setExpandedRow($event)"
14 (updateSelection)="updateSelection($event)"
15 [updateSelectionOnRefresh]="'never'">
16
17 <div class="table-actions btn-toolbar">
18 <cd-table-actions [permission]="permissions.osd"
19 [selection]="selection"
20 class="btn-group"
21 id="osd-actions"
22 [tableActions]="tableActions">
23 </cd-table-actions>
24 <cd-table-actions [permission]="{read: true}"
25 [selection]="selection"
26 dropDownOnly="Cluster-wide configuration"
27 btnColor="light"
28 class="btn-group"
29 id="cluster-wide-actions"
30 [tableActions]="clusterWideActions">
31 </cd-table-actions>
32 </div>
33
34 <cd-osd-details cdTableDetail
35 [selection]="expandedRow">
36 </cd-osd-details>
37 </cd-table>
38 </ng-template>
39 </li>
40
41 <li ngbNavItem
42 *ngIf="permissions.grafana.read">
43 <a ngbNavLink
44 i18n>Overall Performance</a>
45 <ng-template ngbNavContent>
46 <cd-grafana [grafanaPath]="'osd-overview?'"
47 [type]="'metrics'"
48 uid="lo02I1Aiz"
49 grafanaStyle="four">
50 </cd-grafana>
51 </ng-template>
52 </li>
53 </ul>
54
55 <div [ngbNavOutlet]="nav"></div>
56
57 <ng-template #markOsdConfirmationTpl
58 let-markActionDescription="markActionDescription"
59 let-osdIds="osdIds">
60 <ng-container i18n><strong>OSD(s) {{ osdIds | join }}</strong> will be marked
61 <strong>{{ markActionDescription }}</strong> if you proceed.</ng-container>
62 </ng-template>
63
64 <ng-template #criticalConfirmationTpl
65 let-safeToPerform="safeToPerform"
66 let-message="message"
67 let-actionDescription="actionDescription"
68 let-osdIds="osdIds">
69 <div *ngIf="!safeToPerform"
70 class="danger">
71 <cd-alert-panel type="warning"
72 i18n>The {selection.hasSingleSelection, select, true {OSD is} other {OSDs are}} not safe to be
73 {{ actionDescription }}! {{ message }}</cd-alert-panel>
74 </div>
75 <ng-container i18n><strong>OSD {{ osdIds | join }}</strong> will be
76 <strong>{{ actionDescription }}</strong> if you proceed.</ng-container>
77 </ng-template>
78
79 <ng-template #flagsTpl
80 let-row="row">
81 <span *ngFor="let flag of row.cdClusterFlags;"
82 class="badge badge-hdd mr-1">{{ flag }}</span>
83 <span *ngFor="let flag of row.cdIndivFlags;"
84 class="badge badge-info mr-1">{{ flag }}</span>
85 </ng-template>
86
87 <ng-template #osdUsageTpl
88 let-row="row">
89 <cd-usage-bar [total]="row.stats.stat_bytes"
90 [used]="row.stats.stat_bytes_used"
91 [warningThreshold]="osdSettings.nearfull_ratio"
92 [errorThreshold]="osdSettings.full_ratio">
93 </cd-usage-bar>
94 </ng-template>
95
96 <ng-template #deleteOsdExtraTpl
97 let-form="form">
98 <ng-container [formGroup]="form">
99 <ng-container formGroupName="child">
100 <div class="form-group">
101 <div class="custom-control custom-checkbox">
102 <input type="checkbox"
103 class="custom-control-input"
104 name="preserve"
105 id="preserve"
106 formControlName="preserve">
107 <label class="custom-control-label"
108 for="preserve"
109 i18n>Preserve OSD ID(s) for replacement.</label>
110 </div>
111 </div>
112 </ng-container>
113 </ng-container>
114 </ng-template>