Scope server snapshots and keep completed history off fleet refreshes
This commit is contained in:
@@ -20,13 +20,18 @@ export function freshRelease(): number | null {
|
||||
const age = latest.checkedAt ? Date.now() - Date.parse(latest.checkedAt) : NaN;
|
||||
return !latest.error && age >= 0 && age < HOUR ? latest.revision : null;
|
||||
}
|
||||
export function runningVersions(): PlutoniumVersion[] {
|
||||
const versions = db().prepare('SELECT * FROM plutonium_versions').all() as PlutoniumVersion[];
|
||||
export function runningVersions(serverName?: string): PlutoniumVersion[] {
|
||||
const bindings = serverName === undefined ? [] : [serverName];
|
||||
const versions = db().prepare(`SELECT * FROM plutonium_versions ${serverName === undefined ? '' : 'WHERE server = ?'}`)
|
||||
.all(...bindings) as PlutoniumVersion[];
|
||||
const target = freshRelease();
|
||||
const byServer = new Map(versions.map(version => [version.server, version]));
|
||||
const epochs = latestGameSubmissions();
|
||||
const recovering = new Set((db().prepare('SELECT server FROM restart_rollout WHERE healthy_at IS NULL').all() as { server: string }[]).map(row => row.server));
|
||||
return listServers().map(server => {
|
||||
const epochs = serverName === undefined ? latestGameSubmissions() : new Map([[serverName, latestGameSubmission(serverName)]]);
|
||||
const recovering = new Set((db().prepare(`SELECT server FROM restart_rollout WHERE healthy_at IS NULL ${serverName === undefined ? '' : 'AND server = ?'}`)
|
||||
.all(...bindings) as { server: string }[]).map(row => row.server));
|
||||
const selected = serverName === undefined ? undefined : getServer(serverName);
|
||||
const servers = serverName === undefined ? listServers() : selected && !selected.destroyed_at ? [selected] : [];
|
||||
return servers.map(server => {
|
||||
const value = byServer.get(server.name)
|
||||
?? { server: server.name, revision: null, checked_at: null, error: null };
|
||||
const age = value.checked_at ? Date.now() - Date.parse(value.checked_at) : NaN;
|
||||
|
||||
Reference in New Issue
Block a user