]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/blob
0acf38b345348dc9432697ff49808eea00165b60
[ceph-ci.git] /
1 <nav ngbNav
2      #nav="ngbNav"
3      class="nav-tabs"
4      [(activeId)]="activeId"
5      (navChange)="onNavChange($event)">
6   <ng-container ngbNavItem="configuration">
7     <a ngbNavLink
8        i18n>Configuration</a>
9     <ng-template ngbNavContent>
10       <div>
11         <cd-alert-panel *ngIf="!rgwModuleStatus"
12                         type="info"
13                         spacingClass="mb-3"
14                         class="d-flex align-items-center"
15                         i18n>In order to access the import/export feature, the rgw module must be enabled
16           <button class="btn btn-light mx-2"
17                   type="button"
18                   (click)="enableRgwModule()">Enable</button>
19         </cd-alert-panel>
20         <cd-alert-panel   *ngIf="restartGatewayMessage"
21                           type="warning"
22                           spacingClass="mb-3"
23                           i18n>Please restart all Ceph Object Gateway instances in all zones to ensure consistent multisite configuration updates.
24           <a class="text-decoration-underline"
25              routerLink="/services">
26              Cluster->Services</a>
27         </cd-alert-panel>
28         <span *ngIf="!showMigrateAndReplicationActions; else migrateAndReplicationActionTpl">
29           <cd-table-actions class="btn-group mb-4 me-2"
30                             [permission]="permission"
31                             [selection]="selection"
32                             [tableActions]="createTableActions">
33           </cd-table-actions>
34         </span>
35         <ng-template #migrateAndReplicationActionTpl>
36           <cd-table-actions class="btn-group mb-4 me-2"
37                             [permission]="permission"
38                             [selection]="selection"
39                             [tableActions]="multisiteReplicationActions">
40           </cd-table-actions>
41           <cd-table-actions class="btn-group mb-4 me-2 secondary"
42                             [permission]="permission"
43                             [btnColor]="'light'"
44                             [selection]="selection"
45                             [tableActions]="migrateTableAction">
46           </cd-table-actions>
47         </ng-template>
48         <cd-table-actions class="btn-group mb-4 me-2"
49                           [permission]="permission"
50                           [btnColor]="'light'"
51                           [selection]="selection"
52                           [tableActions]="importAction">
53         </cd-table-actions>
54         <cd-table-actions class="btn-group mb-4 me-2"
55                           [permission]="permission"
56                           [btnColor]="'light'"
57                           [selection]="selection"
58                           [tableActions]="exportAction">
59         </cd-table-actions>
60       </div>
61       <div class="card">
62         <div class="card-header"
63              i18n>Topology Viewer
64         </div>
65         <div class="row">
66           <div class="col-sm-6 col-lg-6 tree-container">
67             <i *ngIf="loadingIndicator"
68                [ngClass]="[icons.large, icons.spinner, icons.spin]"></i>
69             <tree-root #tree
70                        [nodes]="nodes"
71                        [options]="treeOptions"
72                        (updateData)="onUpdateData()">
73               <ng-template #treeNodeTemplate
74                            let-node>
75                 <span *ngIf="node.data.name"
76                       class="me-3">
77                   <span *ngIf="(node.data.show_warning)">
78                     <i  class="text-danger"
79                         i18n-title
80                         [title]="node.data.warning_message"
81                         [ngClass]="icons.danger"></i>
82                   </span>
83                   <i [ngClass]="node.data.icon"></i>
84                   {{ node.data.name }}
85                 </span>
86                 <span class="badge badge-success me-2"
87                       *ngIf="node.data.is_default">
88                     default
89                 </span>
90                 <span class="badge badge-warning me-2"
91                       *ngIf="node.data.is_master"> master </span>
92                 <span class="badge badge-warning me-2"
93                       *ngIf="node.data.secondary_zone">
94                   secondary-zone
95                 </span>
96                 <div class="btn-group align-inline-btns"
97                      *ngIf="node.isFocused"
98                      role="group">
99                   <div [title]="editTitle"
100                        i18n-title>
101                     <button type="button"
102                             class="btn btn-light dropdown-toggle-split ms-1"
103                             (click)="openModal(node, true)"
104                             [disabled]="getDisable() || node.data.secondary_zone">
105                       <i [ngClass]="[icons.edit]"></i>
106                     </button>
107                   </div>
108                   <div [title]="deleteTitle"
109                        i18n-title>
110                     <button type="button"
111                             class="btn btn-light ms-1"
112                             [disabled]="isDeleteDisabled(node) || node.data.secondary_zone"
113                             (click)="delete(node)">
114                       <i [ngClass]="[icons.destroy]"></i>
115                     </button>
116                   </div>
117                 </div>
118               </ng-template>
119             </tree-root>
120           </div>
121           <div class="col-sm-6 col-lg-6 metadata"
122                *ngIf="metadata">
123             <legend>{{ metadataTitle }}</legend>
124             <div>
125               <cd-table-key-value cdTableDetail
126                                   [data]="metadata">
127               </cd-table-key-value>
128             </div>
129           </div>
130         </div>
131       </div>
132     </ng-template>
133   </ng-container>
134   <ng-container ngbNavItem="syncPolicy">
135     <a ngbNavLink
136        i18n>Sync Policy</a>
137     <ng-template ngbNavContent>
138       <cd-rgw-multisite-sync-policy></cd-rgw-multisite-sync-policy>
139     </ng-template>
140   </ng-container>
141 </nav>
142
143 <div [ngbNavOutlet]="nav"></div>
144 <router-outlet name="modal"></router-outlet>