From edcae190b27d6b9ca5e1c794a394a194f40dca2f Mon Sep 17 00:00:00 2001 From: Owen Schwartz Date: Sat, 26 Oct 2024 17:23:48 -0400 Subject: [PATCH] Test & fix the get defaults for sites --- server/routers/external.ts | 2 +- server/routers/site/pickSiteDefaults.ts | 6 ++++-- src/app/[orgId]/sites/[niceId]/components/CreateSite.tsx | 5 +++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/server/routers/external.ts b/server/routers/external.ts index 4a269f6a..5bb3305b 100644 --- a/server/routers/external.ts +++ b/server/routers/external.ts @@ -46,11 +46,11 @@ authenticated.put("/org/:orgId/site", verifyOrgAccess, site.createSite); authenticated.get("/org/:orgId/sites", verifyOrgAccess, site.listSites); authenticated.get("/org/:orgId/site/:niceId", verifyOrgAccess, site.getSite); +authenticated.get("/org/:orgId/pickSiteDefaults", verifyOrgAccess, site.pickSiteDefaults); authenticated.get("/site/:siteId", verifySiteAccess, site.getSite); authenticated.get("/site/:siteId/roles", verifySiteAccess, site.listSiteRoles); authenticated.post("/site/:siteId", verifySiteAccess, site.updateSite); authenticated.delete("/site/:siteId", verifySiteAccess, site.deleteSite); -authenticated.delete("/site/pickSiteDefaults", site.pickSiteDefaults); authenticated.put( "/org/:orgId/site/:siteId/resource", diff --git a/server/routers/site/pickSiteDefaults.ts b/server/routers/site/pickSiteDefaults.ts index f12c720e..5901de8c 100644 --- a/server/routers/site/pickSiteDefaults.ts +++ b/server/routers/site/pickSiteDefaults.ts @@ -66,8 +66,10 @@ export async function pickSiteDefaults( .where(eq(sites.exitNodeId, exitNode.exitNodeId)); // TODO: we need to lock this subnet for some time so someone else does not take it - const subnets = sitesQuery.map((site) => site.subnet); - const newSubnet = findNextAvailableCidr(subnets, 28, exitNode.address); + let subnets = sitesQuery.map((site) => site.subnet); + // exclude the exit node address by replacing after the / with a /28 + subnets.push(exitNode.address.replace(/\/\d+$/, "/29")); + const newSubnet = findNextAvailableCidr(subnets, 29, exitNode.address); if (!newSubnet) { return next( createHttpError( diff --git a/src/app/[orgId]/sites/[niceId]/components/CreateSite.tsx b/src/app/[orgId]/sites/[niceId]/components/CreateSite.tsx index ae2f03e3..1691ff00 100644 --- a/src/app/[orgId]/sites/[niceId]/components/CreateSite.tsx +++ b/src/app/[orgId]/sites/[niceId]/components/CreateSite.tsx @@ -76,7 +76,7 @@ export function CreateSiteForm() { setIsLoading(false); api - .get(`/site/pickSiteDefaults`) + .get(`/org/${orgId}/pickSiteDefaults`) .catch((e) => { toast({ title: "Error creating site..." @@ -93,7 +93,8 @@ export function CreateSiteForm() { const res = await api .put(`/org/${orgId}/site/`, { name: data.name, - // subdomain: data.subdomain, + subnet: siteDefaults?.subnet, + exitNodeId: siteDefaults?.exitNodeId, pubKey: keypair?.publicKey, }) .catch((e) => {