Pool Plutonium keys by game for launches and autoscaling

This commit is contained in:
2026-10-07 11:24:53 -04:00
parent 56e5a2d06d
commit ec45371478
47 changed files with 956 additions and 305 deletions
+4 -4
View File
@@ -31,8 +31,8 @@ beforeEach(async () => {
const { seedServerRegistry } = await import('../../src/lib/server/fleet/servers.js');
await seedServerRegistry();
database.db().prepare('UPDATE servers SET game_port = 28960 WHERE name = ?').run(server);
const { saveServerKey } = await import('../../src/lib/server/fleet/server-keys.js');
saveServerKey(server, 'saved-key');
const { reserveServerKey } = await import('../../src/lib/server/fleet/server-keys.js');
reserveServerKey(server, 't5', 'saved-key');
refreshHost = (await prepareNativeHost([server])).heartbeat;
backend = await import('../../src/lib/server/backends/native.js');
vi.spyOn(backend, 'nativeHealth').mockResolvedValue({ ok: true, state: 'running' });
@@ -504,8 +504,8 @@ describe('Watchdog APIs', () => {
describe('Watchdog drift campaigns', () => {
it('keeps a missing rebuild key visible as attention without deleting files or retrying automatically', async () => {
const { removeServerKey } = await import('../../src/lib/server/fleet/server-keys.js');
removeServerKey(server);
// Simulate legacy registry damage; administrators cannot remove a leased key.
database.db().prepare('DELETE FROM server_key_leases WHERE server_id=?').run(server);
const path = join(fixture.t5, server, 'runtime/plutonium/storage/t5/raw/scripts/sp', 'stray.gsc');
await writeFile(path, 'unexpected');
await watchdog.watchdogTick(true);