Improved error handling
This commit is contained in:
parent
db9e99cc52
commit
97ebcd4527
@ -9,6 +9,14 @@ Se vengono specificati degli hostname o degli ID non validi insieme a degli host
|
|||||||
Se nessuna delle due variabili vengono specificate, il programma monitorerà tutti i peer registrati.
|
Se nessuna delle due variabili vengono specificate, il programma monitorerà tutti i peer registrati.
|
||||||
Il file di log è disponibile nella cartella di esecuzione in `./log/NetBird-UptimeKuma.log`
|
Il file di log è disponibile nella cartella di esecuzione in `./log/NetBird-UptimeKuma.log`
|
||||||
|
|
||||||
|
Il programma restituisce come codice di errore:
|
||||||
|
|
||||||
|
`1` se non viene inserito nessun token
|
||||||
|
|
||||||
|
`2` se viene inserito un token non valido
|
||||||
|
|
||||||
|
`3` se si verifica un errore in una funzione di rete
|
||||||
|
|
||||||
## Per iniziare ad usare il programma:
|
## Per iniziare ad usare il programma:
|
||||||
1- Recarsi su https://app.netbird.io/team/users
|
1- Recarsi su https://app.netbird.io/team/users
|
||||||
|
|
||||||
|
|||||||
7
hosts.js
7
hosts.js
@ -30,6 +30,7 @@ async function Request() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async function isConnected(hostID) {
|
async function isConnected(hostID) {
|
||||||
|
try {
|
||||||
const response = await axios.get(
|
const response = await axios.get(
|
||||||
`https://api.netbird.io/api/peers/${hostID}`,
|
`https://api.netbird.io/api/peers/${hostID}`,
|
||||||
{
|
{
|
||||||
@ -40,6 +41,11 @@ async function isConnected(hostID) {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
Log(`[${shared.now()}] ${hostID} connected: ${response.data.connected}`);
|
Log(`[${shared.now()}] ${hostID} connected: ${response.data.connected}`);
|
||||||
|
}
|
||||||
|
catch (error) {
|
||||||
|
Log(`[${shared.now()}] ${error}`);
|
||||||
|
process.exit(3);
|
||||||
|
}
|
||||||
return response.data.connected;
|
return response.data.connected;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,6 +164,7 @@ async function initHostList() {
|
|||||||
});
|
});
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
Log(`[${shared.now()}] ${error}`);
|
Log(`[${shared.now()}] ${error}`);
|
||||||
|
process.exit(3);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
8
index.js
8
index.js
@ -10,10 +10,14 @@ const eventEmitter = new EventEmitter();
|
|||||||
shared.eventEmitter = eventEmitter;
|
shared.eventEmitter = eventEmitter;
|
||||||
let baseToken = process.env.BASE_TOKEN;
|
let baseToken = process.env.BASE_TOKEN;
|
||||||
shared.setToken(baseToken);
|
shared.setToken(baseToken);
|
||||||
|
/*
|
||||||
global.minute = 1000 * 60;
|
global.minute = 1000 * 60;
|
||||||
global.hour = minute * 60;
|
global.hour = minute * 60;
|
||||||
global.day = hour * 24;
|
global.day = hour * 24;
|
||||||
|
*/
|
||||||
|
global.minute = 1000;
|
||||||
|
global.hour = minute * 10;
|
||||||
|
global.day = hour * 3;
|
||||||
|
|
||||||
app.listen(port, () => {
|
app.listen(port, () => {
|
||||||
Log(`[${shared.now()}] Il server è online sulla porta ${port}`);
|
Log(`[${shared.now()}] Il server è online sulla porta ${port}`);
|
||||||
@ -33,6 +37,6 @@ if ("BASE_TOKEN" in process.env) {
|
|||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
app.get("/", (req, res) => {
|
app.get("/", (_, res) => {
|
||||||
res.json(shared.getHosts());
|
res.json(shared.getHosts());
|
||||||
});
|
});
|
||||||
|
|||||||
31
tokens.js
31
tokens.js
@ -7,7 +7,6 @@ let userID;
|
|||||||
async function TokenRenew() {
|
async function TokenRenew() {
|
||||||
setInterval(async () => {
|
setInterval(async () => {
|
||||||
shared.eventEmitter.emit("tokenRenewalStart");
|
shared.eventEmitter.emit("tokenRenewalStart");
|
||||||
try {
|
|
||||||
// ottieni l'ID dell'utente associato al token
|
// ottieni l'ID dell'utente associato al token
|
||||||
userID = await getUserID();
|
userID = await getUserID();
|
||||||
|
|
||||||
@ -21,24 +20,30 @@ async function TokenRenew() {
|
|||||||
// cancella il token precedente
|
// cancella il token precedente
|
||||||
await deleteToken(tokenID);
|
await deleteToken(tokenID);
|
||||||
shared.eventEmitter.emit("tokenRenewalEnd");
|
shared.eventEmitter.emit("tokenRenewalEnd");
|
||||||
} catch (error) {
|
|
||||||
Log(`[${shared.now()}] Errore nel rinnovo del token: ${error}`);
|
|
||||||
}
|
|
||||||
}, day - hour);
|
}, day - hour);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getUserID() {
|
async function getUserID() {
|
||||||
const response = await axios.get("https://api.netbird.io/api/users/current", {
|
try {
|
||||||
|
const response = await axios.get(
|
||||||
|
"https://api.netbird.io/api/users/current",
|
||||||
|
{
|
||||||
headers: {
|
headers: {
|
||||||
Accept: "application/json",
|
Accept: "application/json",
|
||||||
Authorization: `Token ${shared.getToken()}`,
|
Authorization: `Token ${shared.getToken()}`,
|
||||||
},
|
},
|
||||||
});
|
}
|
||||||
|
);
|
||||||
Log(`[${shared.now()}] UserID: ${response.data.id}`);
|
Log(`[${shared.now()}] UserID: ${response.data.id}`);
|
||||||
|
} catch (error) {
|
||||||
|
Log(`[${shared.now()}] ${error}`);
|
||||||
|
process.exit(3);
|
||||||
|
}
|
||||||
return response.data.id;
|
return response.data.id;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function deleteToken(tokenID) {
|
async function deleteToken(tokenID) {
|
||||||
|
try {
|
||||||
await axios.delete(
|
await axios.delete(
|
||||||
`https://api.netbird.io/api/users/${userID}/tokens/${tokenID}`,
|
`https://api.netbird.io/api/users/${userID}/tokens/${tokenID}`,
|
||||||
{
|
{
|
||||||
@ -48,9 +53,14 @@ async function deleteToken(tokenID) {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
Log(`[${shared.now()}] Token con ID ${tokenID} cancellato con successo`);
|
Log(`[${shared.now()}] Token con ID ${tokenID} cancellato con successo`);
|
||||||
|
} catch (error) {
|
||||||
|
Log(`[${shared.now()}] ${error}`);
|
||||||
|
process.exit(3);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getCurrentTokenID() {
|
async function getCurrentTokenID() {
|
||||||
|
try {
|
||||||
const response = await axios.get(
|
const response = await axios.get(
|
||||||
`https://api.netbird.io/api/users/${userID}/tokens`,
|
`https://api.netbird.io/api/users/${userID}/tokens`,
|
||||||
{
|
{
|
||||||
@ -65,10 +75,15 @@ async function getCurrentTokenID() {
|
|||||||
if (!token) throw new Error("Token 'Uptime Kuma' non trovato");
|
if (!token) throw new Error("Token 'Uptime Kuma' non trovato");
|
||||||
|
|
||||||
Log(`[${shared.now()}] CurrentTokenID: ${token.id}`);
|
Log(`[${shared.now()}] CurrentTokenID: ${token.id}`);
|
||||||
|
} catch (error) {
|
||||||
|
Log(`[${shared.now()}] ${error}`);
|
||||||
|
process.exit(3);
|
||||||
|
}
|
||||||
return token.id;
|
return token.id;
|
||||||
}
|
}
|
||||||
|
|
||||||
async function getNewToken() {
|
async function getNewToken() {
|
||||||
|
try {
|
||||||
const response = await axios.post(
|
const response = await axios.post(
|
||||||
`https://api.netbird.io/api/users/${userID}/tokens`,
|
`https://api.netbird.io/api/users/${userID}/tokens`,
|
||||||
{
|
{
|
||||||
@ -84,6 +99,10 @@ async function getNewToken() {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
Log(`[${shared.now()}] Nuovo token creato: ${response.data.plain_token}`);
|
Log(`[${shared.now()}] Nuovo token creato: ${response.data.plain_token}`);
|
||||||
|
} catch (error) {
|
||||||
|
Log(`[${shared.now()}] ${error}`);
|
||||||
|
process.exit(3);
|
||||||
|
}
|
||||||
return response.data.plain_token;
|
return response.data.plain_token;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user