[UNTESTED]: Also delete offline nodes that were never online.

This commit is contained in:
baldo 2021-07-26 21:40:17 +02:00
parent 2013fbab3d
commit f96113c1c5
3 changed files with 85 additions and 35 deletions
server/services

View file

@ -10,7 +10,7 @@ import Logger from "../logger";
import * as MailService from "../services/mailService";
import {normalizeString} from "../utils/strings";
import {monitoringConfirmUrl, monitoringDisableUrl} from "../utils/urlBuilder";
import {FastdKey, MonitoringState, MonitoringToken, Node, NodeSecrets, NodeStatistics, Token} from "../types";
import {FastdKey, MonitoringState, MonitoringToken, Node, NodeSecrets, NodeStatistics, UnixTimestamp, Token} from "../types";
import util from "util";
const pglob = util.promisify(glob);
@ -234,6 +234,8 @@ async function deleteNodeFile(token: Token): Promise<void> {
async function parseNodeFile(file: string): Promise<{node: Node, nodeSecrets: NodeSecrets}> {
const contents = await fs.readFile(file);
const stats = await fs.lstat(file);
const modifiedAt = stats.mtimeMs;
const lines = contents.toString();
@ -294,6 +296,7 @@ async function parseNodeFile(file: string): Promise<{node: Node, nodeSecrets: No
monitoring: !!node.monitoring,
monitoringConfirmed: !!node.monitoringConfirmed,
monitoringState: node.monitoringState as MonitoringState || MonitoringState.DISABLED,
modifiedAt,
},
nodeSecrets: {
monitoringToken: nodeSecrets.monitoringToken as MonitoringToken || undefined,
@ -488,6 +491,11 @@ export async function fixNodeFilenames(): Promise<void> {
}
}
export async function findNodesModifiedBefore(timestamp: UnixTimestamp): Promise<Node[]> {
const nodes = await getAllNodes();
return _.filter(nodes, node => node.modifiedAt < timestamp);
}
export async function getNodeStatistics(): Promise<NodeStatistics> {
const nodes = await getAllNodes();