Switch to update

This commit is contained in:
Owen
2025-11-20 16:08:03 -05:00
parent 9420b41e39
commit 7ac27b3883
2 changed files with 46 additions and 13 deletions

View File

@@ -86,3 +86,33 @@ export async function removeRemoteSubnets(
}
});
}
export async function updateRemoteSubnets(
clientId: number,
siteId: number,
remoteSubnets: {
oldRemoteSubnets: string[],
newRemoteSubnets: string[]
},
olmId?: string
) {
if (!olmId) {
const [olm] = await db
.select()
.from(olms)
.where(eq(olms.clientId, clientId))
.limit(1);
if (!olm) {
throw new Error(`Olm with ID ${clientId} not found`);
}
olmId = olm.olmId;
}
await sendToClient(olmId, {
type: `olm/wg/peer/update-remote-subnets`,
data: {
siteId: siteId,
...remoteSubnets
}
});
}

View File

@@ -18,11 +18,13 @@ import { fromError } from "zod-validation-error";
import logger from "@server/logger";
import { OpenAPITags, registry } from "@server/openApi";
import {
addRemoteSubnets,
removeRemoteSubnets,
updateRemoteSubnets,
updateTargets
} from "@server/routers/client/targets";
import { generateRemoteSubnets, generateSubnetProxyTargets } from "@server/lib/ip";
import {
generateRemoteSubnets,
generateSubnetProxyTargets
} from "@server/lib/ip";
import {
getClientSiteResourceAccess,
rebuildClientAssociations
@@ -261,19 +263,20 @@ export async function updateSiteResource(
});
let olmJobs: Promise<void>[] = [];
for (const client of mergedAllClients) { // we also need to update the remote subnets on the olms for each client that has access to this site
for (const client of mergedAllClients) {
// we also need to update the remote subnets on the olms for each client that has access to this site
olmJobs.push(
removeRemoteSubnets(
updateRemoteSubnets(
client.clientId,
updatedSiteResource.siteId,
generateRemoteSubnets([existingSiteResource])
)
);
olmJobs.push(
addRemoteSubnets(
client.clientId,
updatedSiteResource.siteId,
generateRemoteSubnets([updatedSiteResource])
{
oldRemoteSubnets: generateRemoteSubnets([
existingSiteResource
]),
newRemoteSubnets: generateRemoteSubnets([
updatedSiteResource
])
}
)
);
}