readd syncstatuschart
Signed-off-by: Marc 'risson' Schmitt <marc.schmitt@risson.space>
This commit is contained in:
@ -7,7 +7,7 @@ import "#admin/admin-overview/cards/VersionStatusCard";
|
||||
import "#admin/admin-overview/cards/WorkerStatusCard";
|
||||
import "#admin/admin-overview/charts/AdminLoginAuthorizeChart";
|
||||
import "#admin/admin-overview/charts/OutpostStatusChart";
|
||||
// import "#admin/admin-overview/charts/SyncStatusChart";
|
||||
import "#admin/admin-overview/charts/SyncStatusChart";
|
||||
import { me } from "#common/users";
|
||||
import "#components/ak-page-header";
|
||||
import { AKElement } from "#elements/Base";
|
||||
@ -109,15 +109,13 @@ export class AdminOverviewPage extends AdminOverviewBase {
|
||||
<ak-admin-status-chart-outpost></ak-admin-status-chart-outpost>
|
||||
</ak-aggregate-card>
|
||||
</div>
|
||||
<!-- <div -->
|
||||
<!-- class="pf-l-grid__item pf-m-12-col pf-m-12-col-on-xl pf-m-4-col-on-2xl" -->
|
||||
<!-- > -->
|
||||
<!-- <ak-aggregate-card icon="fa fa-sync-alt" header=${msg(
|
||||
"Sync status",
|
||||
)}> -->
|
||||
<!-- <ak-admin-status-chart-sync></ak-admin-status-chart-sync> -->
|
||||
<!-- </ak-aggregate-card> -->
|
||||
<!-- </div> -->
|
||||
<div
|
||||
class="pf-l-grid__item pf-m-12-col pf-m-12-col-on-xl pf-m-4-col-on-2xl"
|
||||
>
|
||||
<ak-aggregate-card icon="fa fa-sync-alt" header=${msg("Sync status")}>
|
||||
<ak-admin-status-chart-sync></ak-admin-status-chart-sync>
|
||||
</ak-aggregate-card>
|
||||
</div>
|
||||
<div class="pf-l-grid__item pf-m-12-col">
|
||||
<hr class="pf-c-divider" />
|
||||
</div>
|
||||
|
||||
@ -13,7 +13,7 @@ import {
|
||||
ProvidersApi,
|
||||
SourcesApi,
|
||||
SyncStatus,
|
||||
SystemTaskStatusEnum,
|
||||
TaskAggregatedStatusEnum,
|
||||
} from "@goauthentik/api";
|
||||
|
||||
export interface SummarizedSyncStatus {
|
||||
@ -58,16 +58,22 @@ export class SyncStatusChart extends AKChart<SummarizedSyncStatus[]> {
|
||||
let objectKey = "healthy";
|
||||
try {
|
||||
const status = await fetchSyncStatus(element);
|
||||
status.tasks.forEach((task) => {
|
||||
if (task.status !== SystemTaskStatusEnum.Successful) {
|
||||
objectKey = "failed";
|
||||
}
|
||||
const now = new Date().getTime();
|
||||
const maxDelta = 3600000; // 1 hour
|
||||
if (!status || now - task.finishTimestamp.getTime() > maxDelta) {
|
||||
objectKey = "unsynced";
|
||||
}
|
||||
});
|
||||
|
||||
const now = new Date().getTime();
|
||||
const maxDelta = 3600000; // 1 hour
|
||||
|
||||
if (
|
||||
status.lastSyncStatus === TaskAggregatedStatusEnum.Error ||
|
||||
status.lastSyncStatus === TaskAggregatedStatusEnum.Rejected ||
|
||||
status.lastSyncStatus === TaskAggregatedStatusEnum.Warning
|
||||
) {
|
||||
objectKey = "failed";
|
||||
} else if (
|
||||
!status.lastSuccessfulSync ||
|
||||
now - status.lastSuccessfulSync.getTime() > maxDelta
|
||||
) {
|
||||
objectKey = "unsynced";
|
||||
}
|
||||
} catch {
|
||||
objectKey = "unsynced";
|
||||
}
|
||||
@ -133,6 +139,17 @@ export class SyncStatusChart extends AKChart<SummarizedSyncStatus[]> {
|
||||
},
|
||||
msg("LDAP Source"),
|
||||
),
|
||||
await this.fetchStatus(
|
||||
() => {
|
||||
return new SourcesApi(DEFAULT_CONFIG).sourcesKerberosList();
|
||||
},
|
||||
(element) => {
|
||||
return new SourcesApi(DEFAULT_CONFIG).sourcesKerberosSyncStatusRetrieve({
|
||||
slug: element.slug,
|
||||
});
|
||||
},
|
||||
msg("Kerberos Source"),
|
||||
),
|
||||
];
|
||||
this.centerText = statuses.reduce((total, el) => (total += el.total), 0).toString();
|
||||
return statuses;
|
||||
|
||||
Reference in New Issue
Block a user