fix: Better proxy check

This commit is contained in:
Andras Bacsai 2022-02-28 11:20:46 +01:00
parent b9da68ec28
commit 02abd038fa

View File

@ -199,6 +199,7 @@ export async function checkProxyConfigurations() {
backend_name: backendName, backend_name: backendName,
stats: { lastchg } stats: { lastchg }
} = stat; } = stat;
const { fqdn } = await db.listSettings(); const { fqdn } = await db.listSettings();
if (fqdn) { if (fqdn) {
const domain = getDomain(fqdn); const domain = getDomain(fqdn);
@ -206,8 +207,15 @@ export async function checkProxyConfigurations() {
return; return;
} }
} }
const application = await db.getApplicationById(name); const application = await db.prisma.application.findUnique({
if (!application) { where: { id: name },
include: { destinationDocker: true }
});
const service = await db.prisma.service.findUnique({
where: { id: name },
include: { destinationDocker: true }
});
if (!application && !service) {
const transactionId = await getNextTransactionId(); const transactionId = await getNextTransactionId();
await haproxy await haproxy
.delete(`v2/services/haproxy/configuration/backends/${backendName}`, { .delete(`v2/services/haproxy/configuration/backends/${backendName}`, {
@ -218,6 +226,7 @@ export async function checkProxyConfigurations() {
.json(); .json();
return await completeTransaction(transactionId); return await completeTransaction(transactionId);
} }
if (application?.destinationDocker?.engine && lastchg > 120) {
const found = await checkContainer(application.destinationDocker.engine, name); const found = await checkContainer(application.destinationDocker.engine, name);
if (!found) { if (!found) {
const transactionId = await getNextTransactionId(); const transactionId = await getNextTransactionId();
@ -230,6 +239,23 @@ export async function checkProxyConfigurations() {
.json(); .json();
return await completeTransaction(transactionId); return await completeTransaction(transactionId);
} }
}
if (service?.destinationDocker?.engine && lastchg > 120) {
const found = await checkContainer(service.destinationDocker.engine, name);
if (!found) {
const transactionId = await getNextTransactionId();
await haproxy
.delete(`v2/services/haproxy/configuration/backends/${backendName}`, {
searchParams: {
transaction_id: transactionId
}
})
.json();
return await completeTransaction(transactionId);
}
}
if (lastchg > 120) { if (lastchg > 120) {
const transactionId = await getNextTransactionId(); const transactionId = await getNextTransactionId();
await haproxy await haproxy