Remove Komodo backend in favor of native hosts

This commit is contained in:
2026-10-05 18:07:07 -04:00
parent 701066aaf8
commit 4b0f341d64
116 changed files with 557 additions and 8132 deletions
+6 -7
View File
@@ -19,7 +19,7 @@ beforeEach(async () => {
fixture = await newFixture([]);
vi.stubEnv('GAME_FILES_ROOT', join(fixture.root, 'libraries'));
vi.stubEnv('PLUTAINER_IMAGE', image); vi.stubEnv('RCON_PASSWORD', 'test-password');
vi.stubEnv('KOMODO_ADDRESS', ''); vi.stubEnv('KOMODO_API_KEY', ''); vi.stubEnv('KOMODO_API_SECRET', '');
const { createHost, createEnrollment, enrollHost } = await import('../../src/lib/server/hosts/index.js');
hostId = createHost({ name: 'Native Debian', portMin: 28960, portMax: 28970 }).id;
enrollHost(createEnrollment(hostId).token, inventory());
@@ -250,7 +250,6 @@ describe('native instance provisioning', () => {
expect(result.progress?.checks[0].source).toBe('agent');
const steps = provisioningGroups(result).flatMap(group => group.steps);
expect(steps.every(step => step.state === 'done')).toBe(true);
expect(steps.some(step => step.label.includes('Komodo'))).toBe(false);
expect(result.agentOperation?.state).toBe('completed');
});
@@ -410,7 +409,7 @@ describe('native instance provisioning', () => {
expect(nativeInstance(job.name)?.library_id).toBe(acceptedId);
});
it.each(['t5', 't6'] as const)('queues and verifies a %s deployment without Komodo', async game => {
it.each(['t5', 't6'] as const)('queues and verifies a %s deployment through its host agent', async game => {
const job = await queue(game); await advance();
const operation = await operationFor(job.deploymentId);
expect(job.port).toBeNull();
@@ -498,8 +497,8 @@ describe('native instance provisioning', () => {
const { db } = await import('../../src/lib/server/db/index.js');
const { probeVersion } = await import('../../src/lib/server/integrations/plutonium.js');
const actual = await vi.importActual<typeof import('../../src/lib/server/integrations/plutonium.js')>('../../src/lib/server/integrations/plutonium.js');
const komodo = await import('../../src/lib/server/integrations/komodo.js');
vi.spyOn(komodo, 'komodoInspectHealthy').mockResolvedValue({ ok: true, state: 'running' });
const backend = await import('../../src/lib/server/backends/native.js');
vi.spyOn(backend, 'nativeHealth').mockResolvedValue({ ok: true, state: 'running' });
vi.mocked(probeVersion).mockImplementationOnce(actual.probeVersion);
// Version evidence must follow the submitted command, even on a fast test host.
db().prepare('UPDATE server_deployments SET submitted_at=? WHERE id=?').run(new Date(Date.now() - 1000).toISOString(), rebuild.deploymentId);
@@ -526,8 +525,8 @@ describe('native instance provisioning', () => {
const { probeVersion } = await import('../../src/lib/server/integrations/plutonium.js');
const { rconPlutoniumVersion } = await import('../../src/lib/server/integrations/rcon.js');
const actual = await vi.importActual<typeof import('../../src/lib/server/integrations/plutonium.js')>('../../src/lib/server/integrations/plutonium.js');
const komodo = await import('../../src/lib/server/integrations/komodo.js');
vi.spyOn(komodo, 'komodoInspectHealthy').mockResolvedValue({ ok: true, state: 'running' });
const backend = await import('../../src/lib/server/backends/native.js');
vi.spyOn(backend, 'nativeHealth').mockResolvedValue({ ok: true, state: 'running' });
const submittedAt = new Date(Date.now() - 1000).toISOString();
db().prepare('UPDATE server_deployments SET submitted_at=? WHERE id=?').run(submittedAt, rebuild.deploymentId);
db().prepare('UPDATE restart_rollout SET requested_at=? WHERE operation_id=?').run(submittedAt, rebuild.deploymentId);