Test & fix the get defaults for sites

This commit is contained in:
Owen Schwartz 2024-10-26 17:23:48 -04:00
parent 7feb21e727
commit edcae190b2
No known key found for this signature in database
GPG key ID: 8271FDFFD9E0CCBD
3 changed files with 8 additions and 5 deletions

View file

@ -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",

View file

@ -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(

View file

@ -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) => {