chore: normalize test-server health governance
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
export type HealthStatus = 'ok' | 'degraded' | 'unhealthy';
|
||||
|
||||
export interface HealthInputs {
|
||||
dbOk: boolean;
|
||||
redisStatus: string;
|
||||
pansouStatus: string;
|
||||
videoParserStatus: string;
|
||||
}
|
||||
|
||||
export interface HealthOptions {
|
||||
videoParserRequired?: boolean;
|
||||
}
|
||||
|
||||
export function computeOverallHealth(
|
||||
{ dbOk, redisStatus, pansouStatus, videoParserStatus }: HealthInputs,
|
||||
options: HealthOptions = {},
|
||||
): HealthStatus {
|
||||
const videoParserRequired = options.videoParserRequired ?? false;
|
||||
|
||||
if (dbOk && redisStatus === 'connected' && pansouStatus === 'ok') {
|
||||
if (!videoParserRequired || videoParserStatus === 'ok') {
|
||||
return 'ok';
|
||||
}
|
||||
return 'degraded';
|
||||
}
|
||||
|
||||
if (dbOk && redisStatus !== 'unknown' && pansouStatus !== 'unreachable') {
|
||||
return 'degraded';
|
||||
}
|
||||
|
||||
return 'unhealthy';
|
||||
}
|
||||
Reference in New Issue
Block a user