<div class="container-fluid">
- <div class="row mx-0">
- <cd-card cardTitle="Daemons"
- i18n-title
- link="/rgw/daemons"
- class="col-sm-2 px-3 d-flex"
- aria-label="Daemons card">
- <span class="ms-4 me-4">
- <h1 class="text-center">{{ rgwDaemonCount }}</h1>
- </span>
- </cd-card>
-
- <cd-card cardTitle="Zoning"
- i18n-title
- class="col-sm-2 px-3 d-flex"
- aria-label="Details card">
- <span class="ms-4 me-4 text-center">
- <h3>{{ rgwRealmCount }} Realms</h3>
- <h3>{{ rgwZonegroupCount }} Zonegroups</h3>
- <h3>{{ rgwZoneCount }} Zones</h3>
- </span>
- </cd-card>
-
- <cd-card cardTitle="Buckets"
- i18n-title
- class="col-sm-2 px-3 d-flex"
- aria-label="Details card">
- <span class="ms-4 me-4 text-center">
- <h2>{{ rgwBucketCount }} Buckets</h2>
- <h2>{{ objectCount }} Objects</h2>
- </span>
- </cd-card>
-
- <cd-card cardTitle="Users"
- i18n-title
- class="col-sm-2 px-3 d-flex"
- aria-label="Details card">
- <span class="ms-4 me-4 text-center">
- <h1>{{ UserCount }}</h1>
- </span>
- </cd-card>
-
- <cd-card cardTitle="Used Capacity"
- i18n-title
- class="col-sm-2 px-3 d-flex"
- aria-label="Details card">
- <span class="ms-4 me-4 text-center">
- <h1>{{ totalPoolUsedBytes | dimlessBinary}}</h1>
- </span>
- </cd-card>
-
- <cd-card cardTitle="Avg Object Size"
- i18n-title
- class="col-sm-2 px-3 d-flex"
- aria-label="Details card">
- <span class="ms-4 me-4 text-center">
- <h1>{{ averageObjectSize | dimlessBinary}}</h1>
- </span>
- </cd-card>
+ <div class="row">
+ <div class="col-lg-3">
+ <cd-card cardTitle="Inventory"
+ i18n-title
+ class="col-sm-3 px-3"
+ aria-label="Inventory card">
+ <hr>
+ <li class="list-group-item">
+ <cd-card-row [data]="rgwDaemonCount"
+ link="/rgw/daemon"
+ title="Gateway"
+ summaryType="simplified"
+ *ngIf="rgwDaemonCount != null"></cd-card-row>
+ </li>
+ <hr>
+ <li class="list-group-item">
+ <cd-card-row [data]="rgwRealmCount"
+ link="/rgw/multisite"
+ title="Realm"
+ summaryType="simplified"
+ *ngIf="rgwRealmCount != null"></cd-card-row>
+ </li>
+ <hr>
+ <li class="list-group-item">
+ <cd-card-row [data]="rgwZonegroupCount"
+ link="/rgw/multisite"
+ title="Zonegroup"
+ summaryType="simplified"
+ *ngIf="rgwZonegroupCount != null"></cd-card-row>
+ </li>
+ <hr>
+ <li class="list-group-item">
+ <cd-card-row [data]="rgwZoneCount"
+ link="/rgw/multisite"
+ title="Zone"
+ summaryType="simplified"
+ *ngIf="rgwZoneCount != null"></cd-card-row>
+ </li>
+ <hr>
+ <li class="list-group-item">
+ <cd-card-row [data]="rgwBucketCount"
+ link="/rgw/bucket"
+ title="Bucket"
+ summaryType="simplified"
+ *ngIf="rgwBucketCount != null"></cd-card-row>
+ </li>
+ <hr>
+ <li class="list-group-item">
+ <cd-card-row [data]="UserCount"
+ link="/rgw/user"
+ title="User"
+ summaryType="simplified"
+ *ngIf="UserCount != null"></cd-card-row>
+ </li>
+ <hr>
+ <li class="list-group-item">
+ <cd-card-row [data]="objectCount"
+ title="Object"
+ summaryType="simplified"
+ *ngIf="objectCount != null"></cd-card-row>
+ </li>
+ </cd-card>
+ </div>
+ <div class="col-lg-3">
+ <cd-card cardTitle="Used Capacity"
+ i18n-title
+ class="col-sm-2 px-3 d-flex w-100 h-50 mt-4 pb-5"
+ aria-label="Details card">
+ <span class="ms-4 me-4 text-center">
+ <h1>{{ totalPoolUsedBytes | dimlessBinary}}</h1>
+ </span>
+ </cd-card>
+ <cd-card cardTitle="Avg Object Size"
+ i18n-title
+ class="col-sm-2 px-3 d-flex w-100 h-50 mt-2 pb-5"
+ aria-label="Details card">
+ <span class="ms-4 me-4 text-center">
+ <h1>{{ averageObjectSize | dimlessBinary}}</h1>
+ </span>
+ </cd-card>
+ </div>
</div>
</div>
import { HealthService } from '~/app/shared/api/health.service';
import { Permissions } from '~/app/shared/models/permissions';
-import { AuthStorageService } from '~/app/shared/services/auth-storage.service';
-import {
- FeatureTogglesMap$,
- FeatureTogglesService
-} from '~/app/shared/services/feature-toggles.service';
import { RefreshIntervalService } from '~/app/shared/services/refresh-interval.service';
import { RgwDaemonService } from '~/app/shared/api/rgw-daemon.service';
import { RgwRealmService } from '~/app/shared/api/rgw-realm.service';
import { RgwZonegroupService } from '~/app/shared/api/rgw-zonegroup.service';
import { RgwBucketService } from '~/app/shared/api/rgw-bucket.service';
import { RgwUserService } from '~/app/shared/api/rgw-user.service';
+import { AuthStorageService } from '~/app/shared/services/auth-storage.service';
+import {
+ FeatureTogglesMap$,
+ FeatureTogglesService
+} from '~/app/shared/services/feature-toggles.service';
@Component({
selector: 'cd-rgw-overview-dashboard',
this.daemonSub = this.rgwDaemonService.list().subscribe((data: any) => {
this.rgwDaemonCount = data.length;
});
- this.realmSub = this.rgwRealmService.list().subscribe((data: any) => {
- this.rgwRealmCount = data['realms'].length;
- });
- this.ZonegroupSub = this.rgwZonegroupService.list().subscribe((data: any) => {
- this.rgwZonegroupCount = data['zonegroups'].length;
- });
- this.ZoneSUb = this.rgwZoneService.list().subscribe((data: any) => {
- this.rgwZoneCount = data['zones'].length;
- });
this.BucketSub = this.rgwBucketService.list().subscribe((data: any) => {
this.rgwBucketCount = data.length;
});
this.averageObjectSize = data['average_object_size'];
});
});
+ this.realmSub = this.rgwRealmService.list().subscribe((data: any) => {
+ this.rgwRealmCount = data['realms'].length;
+ });
+ this.ZonegroupSub = this.rgwZonegroupService.list().subscribe((data: any) => {
+ this.rgwZonegroupCount = data['zonegroups'].length;
+ });
+ this.ZoneSUb = this.rgwZoneService.list().subscribe((data: any) => {
+ this.rgwZoneCount = data['zones'].length;
+ });
}
ngOnDestroy() {