mirror of
https://github.com/fosrl/pangolin.git
synced 2026-04-14 13:56:36 +00:00
Add logging for debugging
This commit is contained in:
@@ -21,7 +21,6 @@ import {
|
|||||||
import { and, eq, inArray, ne } from "drizzle-orm";
|
import { and, eq, inArray, ne } from "drizzle-orm";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
addPeer as newtAddPeer,
|
|
||||||
deletePeer as newtDeletePeer
|
deletePeer as newtDeletePeer
|
||||||
} from "@server/routers/newt/peers";
|
} from "@server/routers/newt/peers";
|
||||||
import {
|
import {
|
||||||
@@ -35,7 +34,6 @@ import {
|
|||||||
generateRemoteSubnets,
|
generateRemoteSubnets,
|
||||||
generateSubnetProxyTargetV2,
|
generateSubnetProxyTargetV2,
|
||||||
parseEndpoint,
|
parseEndpoint,
|
||||||
formatEndpoint
|
|
||||||
} from "@server/lib/ip";
|
} from "@server/lib/ip";
|
||||||
import {
|
import {
|
||||||
addPeerData,
|
addPeerData,
|
||||||
@@ -61,6 +59,10 @@ export async function getClientSiteResourceAccess(
|
|||||||
.then((rows) => rows.map((row) => row.sites))
|
.then((rows) => rows.map((row) => row.sites))
|
||||||
: [];
|
: [];
|
||||||
|
|
||||||
|
logger.debug(
|
||||||
|
`rebuildClientAssociations: [getClientSiteResourceAccess] siteResourceId=${siteResource.siteResourceId} networkId=${siteResource.networkId} siteCount=${sitesList.length} siteIds=[${sitesList.map((s) => s.siteId).join(", ")}]`
|
||||||
|
);
|
||||||
|
|
||||||
if (sitesList.length === 0) {
|
if (sitesList.length === 0) {
|
||||||
logger.warn(
|
logger.warn(
|
||||||
`No sites found for siteResource ${siteResource.siteResourceId} with networkId ${siteResource.networkId}`
|
`No sites found for siteResource ${siteResource.siteResourceId} with networkId ${siteResource.networkId}`
|
||||||
@@ -144,6 +146,10 @@ export async function getClientSiteResourceAccess(
|
|||||||
const mergedAllClients = Array.from(allClientsMap.values());
|
const mergedAllClients = Array.from(allClientsMap.values());
|
||||||
const mergedAllClientIds = mergedAllClients.map((c) => c.clientId);
|
const mergedAllClientIds = mergedAllClients.map((c) => c.clientId);
|
||||||
|
|
||||||
|
logger.debug(
|
||||||
|
`rebuildClientAssociations: [getClientSiteResourceAccess] siteResourceId=${siteResource.siteResourceId} mergedClientCount=${mergedAllClientIds.length} clientIds=[${mergedAllClientIds.join(", ")}] (userBased=${newAllClients.length} direct=${directClients.length})`
|
||||||
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
sitesList,
|
sitesList,
|
||||||
mergedAllClients,
|
mergedAllClients,
|
||||||
@@ -161,9 +167,17 @@ export async function rebuildClientAssociationsFromSiteResource(
|
|||||||
subnet: string | null;
|
subnet: string | null;
|
||||||
}[];
|
}[];
|
||||||
}> {
|
}> {
|
||||||
|
logger.debug(
|
||||||
|
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] START siteResourceId=${siteResource.siteResourceId} networkId=${siteResource.networkId} orgId=${siteResource.orgId}`
|
||||||
|
);
|
||||||
|
|
||||||
const { sitesList, mergedAllClients, mergedAllClientIds } =
|
const { sitesList, mergedAllClients, mergedAllClientIds } =
|
||||||
await getClientSiteResourceAccess(siteResource, trx);
|
await getClientSiteResourceAccess(siteResource, trx);
|
||||||
|
|
||||||
|
logger.debug(
|
||||||
|
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] access resolved siteResourceId=${siteResource.siteResourceId} siteCount=${sitesList.length} siteIds=[${sitesList.map((s) => s.siteId).join(", ")}] mergedClientCount=${mergedAllClients.length} clientIds=[${mergedAllClientIds.join(", ")}]`
|
||||||
|
);
|
||||||
|
|
||||||
/////////// process the client-siteResource associations ///////////
|
/////////// process the client-siteResource associations ///////////
|
||||||
|
|
||||||
// get all of the clients associated with other resources in the same network,
|
// get all of the clients associated with other resources in the same network,
|
||||||
@@ -223,6 +237,10 @@ export async function rebuildClientAssociationsFromSiteResource(
|
|||||||
(row) => row.clientId
|
(row) => row.clientId
|
||||||
);
|
);
|
||||||
|
|
||||||
|
logger.debug(
|
||||||
|
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] siteResourceId=${siteResource.siteResourceId} existingResourceClientIds=[${existingClientSiteResourceIds.join(", ")}]`
|
||||||
|
);
|
||||||
|
|
||||||
// Get full client details for existing resource clients (needed for sending delete messages)
|
// Get full client details for existing resource clients (needed for sending delete messages)
|
||||||
const existingResourceClients =
|
const existingResourceClients =
|
||||||
existingClientSiteResourceIds.length > 0
|
existingClientSiteResourceIds.length > 0
|
||||||
@@ -242,6 +260,10 @@ export async function rebuildClientAssociationsFromSiteResource(
|
|||||||
(clientId) => !existingClientSiteResourceIds.includes(clientId)
|
(clientId) => !existingClientSiteResourceIds.includes(clientId)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
logger.debug(
|
||||||
|
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] siteResourceId=${siteResource.siteResourceId} resourceClients toAdd=[${clientSiteResourcesToAdd.join(", ")}]`
|
||||||
|
);
|
||||||
|
|
||||||
const clientSiteResourcesToInsert = clientSiteResourcesToAdd.map(
|
const clientSiteResourcesToInsert = clientSiteResourcesToAdd.map(
|
||||||
(clientId) => ({
|
(clientId) => ({
|
||||||
clientId,
|
clientId,
|
||||||
@@ -250,17 +272,34 @@ export async function rebuildClientAssociationsFromSiteResource(
|
|||||||
);
|
);
|
||||||
|
|
||||||
if (clientSiteResourcesToInsert.length > 0) {
|
if (clientSiteResourcesToInsert.length > 0) {
|
||||||
|
logger.debug(
|
||||||
|
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] siteResourceId=${siteResource.siteResourceId} inserting ${clientSiteResourcesToInsert.length} clientSiteResource association(s)`
|
||||||
|
);
|
||||||
await trx
|
await trx
|
||||||
.insert(clientSiteResourcesAssociationsCache)
|
.insert(clientSiteResourcesAssociationsCache)
|
||||||
.values(clientSiteResourcesToInsert)
|
.values(clientSiteResourcesToInsert)
|
||||||
.returning();
|
.returning();
|
||||||
|
logger.debug(
|
||||||
|
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] siteResourceId=${siteResource.siteResourceId} inserted clientSiteResource associations`
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
logger.debug(
|
||||||
|
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] siteResourceId=${siteResource.siteResourceId} no clientSiteResource associations to insert`
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const clientSiteResourcesToRemove = existingClientSiteResourceIds.filter(
|
const clientSiteResourcesToRemove = existingClientSiteResourceIds.filter(
|
||||||
(clientId) => !mergedAllClientIds.includes(clientId)
|
(clientId) => !mergedAllClientIds.includes(clientId)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
logger.debug(
|
||||||
|
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] siteResourceId=${siteResource.siteResourceId} resourceClients toRemove=[${clientSiteResourcesToRemove.join(", ")}]`
|
||||||
|
);
|
||||||
|
|
||||||
if (clientSiteResourcesToRemove.length > 0) {
|
if (clientSiteResourcesToRemove.length > 0) {
|
||||||
|
logger.debug(
|
||||||
|
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] siteResourceId=${siteResource.siteResourceId} deleting ${clientSiteResourcesToRemove.length} clientSiteResource association(s)`
|
||||||
|
);
|
||||||
await trx
|
await trx
|
||||||
.delete(clientSiteResourcesAssociationsCache)
|
.delete(clientSiteResourcesAssociationsCache)
|
||||||
.where(
|
.where(
|
||||||
@@ -279,9 +318,17 @@ export async function rebuildClientAssociationsFromSiteResource(
|
|||||||
|
|
||||||
/////////// process the client-site associations ///////////
|
/////////// process the client-site associations ///////////
|
||||||
|
|
||||||
|
logger.debug(
|
||||||
|
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] siteResourceId=${siteResource.siteResourceId} beginning client-site association loop over ${sitesList.length} site(s)`
|
||||||
|
);
|
||||||
|
|
||||||
for (const site of sitesList) {
|
for (const site of sitesList) {
|
||||||
const siteId = site.siteId;
|
const siteId = site.siteId;
|
||||||
|
|
||||||
|
logger.debug(
|
||||||
|
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] processing siteId=${siteId} for siteResourceId=${siteResource.siteResourceId}`
|
||||||
|
);
|
||||||
|
|
||||||
const existingClientSites = await trx
|
const existingClientSites = await trx
|
||||||
.select({
|
.select({
|
||||||
clientId: clientSitesAssociationsCache.clientId
|
clientId: clientSitesAssociationsCache.clientId
|
||||||
@@ -293,6 +340,10 @@ export async function rebuildClientAssociationsFromSiteResource(
|
|||||||
(row) => row.clientId
|
(row) => row.clientId
|
||||||
);
|
);
|
||||||
|
|
||||||
|
logger.debug(
|
||||||
|
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] siteId=${siteId} existingClientSiteIds=[${existingClientSiteIds.join(", ")}]`
|
||||||
|
);
|
||||||
|
|
||||||
// Get full client details for existing clients (needed for sending delete messages)
|
// Get full client details for existing clients (needed for sending delete messages)
|
||||||
const existingClients =
|
const existingClients =
|
||||||
existingClientSiteIds.length > 0
|
existingClientSiteIds.length > 0
|
||||||
@@ -308,6 +359,10 @@ export async function rebuildClientAssociationsFromSiteResource(
|
|||||||
|
|
||||||
const otherResourceClientIds = clientsFromOtherResourcesBySite.get(siteId) ?? new Set<number>();
|
const otherResourceClientIds = clientsFromOtherResourcesBySite.get(siteId) ?? new Set<number>();
|
||||||
|
|
||||||
|
logger.debug(
|
||||||
|
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] siteId=${siteId} otherResourceClientIds=[${[...otherResourceClientIds].join(", ")}] mergedAllClientIds=[${mergedAllClientIds.join(", ")}]`
|
||||||
|
);
|
||||||
|
|
||||||
const clientSitesToAdd = mergedAllClientIds.filter(
|
const clientSitesToAdd = mergedAllClientIds.filter(
|
||||||
(clientId) =>
|
(clientId) =>
|
||||||
!existingClientSiteIds.includes(clientId) &&
|
!existingClientSiteIds.includes(clientId) &&
|
||||||
@@ -319,11 +374,25 @@ export async function rebuildClientAssociationsFromSiteResource(
|
|||||||
siteId
|
siteId
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
logger.debug(
|
||||||
|
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] siteId=${siteId} clientSites toAdd=[${clientSitesToAdd.join(", ")}]`
|
||||||
|
);
|
||||||
|
|
||||||
if (clientSitesToInsert.length > 0) {
|
if (clientSitesToInsert.length > 0) {
|
||||||
|
logger.debug(
|
||||||
|
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] siteId=${siteId} inserting ${clientSitesToInsert.length} clientSite association(s)`
|
||||||
|
);
|
||||||
await trx
|
await trx
|
||||||
.insert(clientSitesAssociationsCache)
|
.insert(clientSitesAssociationsCache)
|
||||||
.values(clientSitesToInsert)
|
.values(clientSitesToInsert)
|
||||||
.returning();
|
.returning();
|
||||||
|
logger.debug(
|
||||||
|
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] siteId=${siteId} inserted clientSite associations`
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
logger.debug(
|
||||||
|
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] siteId=${siteId} no clientSite associations to insert`
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Now remove any client-site associations that should no longer exist
|
// Now remove any client-site associations that should no longer exist
|
||||||
@@ -333,7 +402,14 @@ export async function rebuildClientAssociationsFromSiteResource(
|
|||||||
!otherResourceClientIds.has(clientId) // dont remove if there is still another connection for another site resource
|
!otherResourceClientIds.has(clientId) // dont remove if there is still another connection for another site resource
|
||||||
);
|
);
|
||||||
|
|
||||||
|
logger.debug(
|
||||||
|
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] siteId=${siteId} clientSites toRemove=[${clientSitesToRemove.join(", ")}]`
|
||||||
|
);
|
||||||
|
|
||||||
if (clientSitesToRemove.length > 0) {
|
if (clientSitesToRemove.length > 0) {
|
||||||
|
logger.debug(
|
||||||
|
`rebuildClientAssociations: [rebuildClientAssociationsFromSiteResource] siteId=${siteId} deleting ${clientSitesToRemove.length} clientSite association(s)`
|
||||||
|
);
|
||||||
await trx
|
await trx
|
||||||
.delete(clientSitesAssociationsCache)
|
.delete(clientSitesAssociationsCache)
|
||||||
.where(
|
.where(
|
||||||
|
|||||||
Reference in New Issue
Block a user