Add warning for stale index / classifier
This commit is contained in:
parent
d56eb2eed5
commit
86c7bf6310
@ -410,10 +410,10 @@ describe('SettingsComponent', () => {
|
|||||||
'Error 61 connecting to localhost:6379. Connection refused.',
|
'Error 61 connecting to localhost:6379. Connection refused.',
|
||||||
celery_status: SystemStatusItemStatus.ERROR,
|
celery_status: SystemStatusItemStatus.ERROR,
|
||||||
index_status: SystemStatusItemStatus.OK,
|
index_status: SystemStatusItemStatus.OK,
|
||||||
index_last_modified: new Date(),
|
index_last_modified: new Date().toISOString(),
|
||||||
index_error: null,
|
index_error: null,
|
||||||
classifier_status: SystemStatusItemStatus.OK,
|
classifier_status: SystemStatusItemStatus.OK,
|
||||||
classifier_last_modified: new Date(),
|
classifier_last_modified: new Date().toISOString(),
|
||||||
classifier_error: null,
|
classifier_error: null,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -106,25 +106,33 @@
|
|||||||
<dd>
|
<dd>
|
||||||
{{status.tasks.index_status}}
|
{{status.tasks.index_status}}
|
||||||
@if (status.tasks.index_status === 'OK') {
|
@if (status.tasks.index_status === 'OK') {
|
||||||
<i-bs name="check-circle-fill" class="text-success ms-1" [ngbPopover]="indexStatus" triggers="mouseenter:mouseleave"></i-bs>
|
@if (isStale(status.tasks.index_last_modified)) {
|
||||||
|
<i-bs name="exclamation-triangle-fill" class="text-warning ms-1" [ngbPopover]="indexStatus" triggers="mouseenter:mouseleave"></i-bs>
|
||||||
|
} @else {
|
||||||
|
<i-bs name="check-circle-fill" class="text-success ms-1" [ngbPopover]="indexStatus" triggers="mouseenter:mouseleave"></i-bs>
|
||||||
|
}
|
||||||
} @else {
|
} @else {
|
||||||
<i-bs name="exclamation-triangle-fill" class="text-danger ms-1" ngbPopover="{{status.tasks.index_error}}" triggers="mouseenter:mouseleave"></i-bs>
|
<i-bs name="exclamation-triangle-fill" class="text-danger ms-1" ngbPopover="{{status.tasks.index_error}}" triggers="mouseenter:mouseleave"></i-bs>
|
||||||
}
|
}
|
||||||
</dd>
|
</dd>
|
||||||
<ng-template #indexStatus>
|
<ng-template #indexStatus>
|
||||||
<h6><ng-container i18n>Last Updated</ng-container>:</h6> <span class="font-monospace small">{{status.tasks.index_last_modified}}</span>
|
<h6><ng-container i18n>Last Updated</ng-container>:</h6> <span class="font-monospace small">{{status.tasks.index_last_modified | customDate:'medium'}}</span>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
<dt i18n>Classifier Status</dt>
|
<dt i18n>Classifier Status</dt>
|
||||||
<dd>
|
<dd>
|
||||||
{{status.tasks.classifier_status}}
|
{{status.tasks.classifier_status}}
|
||||||
@if (status.tasks.classifier_status === 'OK') {
|
@if (status.tasks.classifier_status === 'OK') {
|
||||||
<i-bs name="check-circle-fill" class="text-success ms-1" [ngbPopover]="classifierStatus" triggers="mouseenter:mouseleave"></i-bs>
|
@if (isStale(status.tasks.classifier_last_modified)) {
|
||||||
|
<i-bs name="exclamation-triangle-fill" class="text-warning ms-1" [ngbPopover]="classifierStatus" triggers="mouseenter:mouseleave"></i-bs>
|
||||||
|
} @else {
|
||||||
|
<i-bs name="check-circle-fill" class="text-success ms-1" [ngbPopover]="classifierStatus" triggers="mouseenter:mouseleave"></i-bs>
|
||||||
|
}
|
||||||
} @else {
|
} @else {
|
||||||
<i-bs name="exclamation-triangle-fill" class="text-danger ms-1" ngbPopover="{{status.tasks.classifier_error}}" triggers="mouseenter:mouseleave"></i-bs>
|
<i-bs name="exclamation-triangle-fill" class="text-danger ms-1" ngbPopover="{{status.tasks.classifier_error}}" triggers="mouseenter:mouseleave"></i-bs>
|
||||||
}
|
}
|
||||||
</dd>
|
</dd>
|
||||||
<ng-template #classifierStatus>
|
<ng-template #classifierStatus>
|
||||||
<h6><ng-container i18n>Last Updated</ng-container>:</h6> <span class="font-monospace small">{{status.tasks.classifier_last_modified}}</span>
|
<h6><ng-container i18n>Last Updated</ng-container>:</h6> <span class="font-monospace small">{{status.tasks.classifier_last_modified | customDate:'medium'}}</span>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</dl>
|
</dl>
|
||||||
</div>
|
</div>
|
||||||
|
@ -42,10 +42,10 @@ const status: SystemStatus = {
|
|||||||
redis_error: 'Error 61 connecting to localhost:6379. Connection refused.',
|
redis_error: 'Error 61 connecting to localhost:6379. Connection refused.',
|
||||||
celery_status: SystemStatusItemStatus.ERROR,
|
celery_status: SystemStatusItemStatus.ERROR,
|
||||||
index_status: SystemStatusItemStatus.OK,
|
index_status: SystemStatusItemStatus.OK,
|
||||||
index_last_modified: new Date(),
|
index_last_modified: new Date().toISOString(),
|
||||||
index_error: null,
|
index_error: null,
|
||||||
classifier_status: SystemStatusItemStatus.OK,
|
classifier_status: SystemStatusItemStatus.OK,
|
||||||
classifier_last_modified: new Date(),
|
classifier_last_modified: new Date().toISOString(),
|
||||||
classifier_error: null,
|
classifier_error: null,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@ -93,4 +93,11 @@ describe('SystemStatusDialogComponent', () => {
|
|||||||
tick(3000)
|
tick(3000)
|
||||||
expect(component.copied).toBeFalsy()
|
expect(component.copied).toBeFalsy()
|
||||||
}))
|
}))
|
||||||
|
|
||||||
|
it('should calculate if date is stale', () => {
|
||||||
|
const date = new Date()
|
||||||
|
date.setHours(date.getHours() - 25)
|
||||||
|
expect(component.isStale(date.toISOString())).toBeTruthy()
|
||||||
|
expect(component.isStale(date.toISOString(), 26)).toBeFalsy()
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
@ -30,4 +30,10 @@ export class SystemStatusDialogComponent {
|
|||||||
this.copied = false
|
this.copied = false
|
||||||
}, 3000)
|
}, 3000)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public isStale(dateStr: string, hours: number = 24): boolean {
|
||||||
|
const date = new Date(dateStr)
|
||||||
|
const now = new Date()
|
||||||
|
return now.getTime() - date.getTime() > hours * 60 * 60 * 1000
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,10 +32,10 @@ export interface SystemStatus {
|
|||||||
redis_error: string
|
redis_error: string
|
||||||
celery_status: SystemStatusItemStatus
|
celery_status: SystemStatusItemStatus
|
||||||
index_status: SystemStatusItemStatus
|
index_status: SystemStatusItemStatus
|
||||||
index_last_modified: Date
|
index_last_modified: string // ISO date string
|
||||||
index_error: string
|
index_error: string
|
||||||
classifier_status: SystemStatusItemStatus
|
classifier_status: SystemStatusItemStatus
|
||||||
classifier_last_modified: Date
|
classifier_last_modified: string // ISO date string
|
||||||
classifier_error: string
|
classifier_error: string
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user