Skip to content

Commit

Permalink
[fix] disconnect all sources (so bases) when a restart is asked
Browse files Browse the repository at this point in the history
  • Loading branch information
lgrd committed Oct 18, 2023
1 parent 9a62f3b commit 93f19d3
Show file tree
Hide file tree
Showing 6 changed files with 46 additions and 4 deletions.
2 changes: 1 addition & 1 deletion src/js/base/base.js
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ module.exports = class Base {

if (this._pool) {
await this._pool.connect();
LOGGER.info("Connecte a la base de données");
LOGGER.info("Pool connecté à la base");
this._connected = true;
} else {
throw errorManager.createError("PG is not available");
Expand Down
1 change: 1 addition & 0 deletions src/js/base/baseManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,7 @@ module.exports = class baseManager {

// on vérifie d'abord que la base n'a pas déjà été créée
if (this._baseCatalog[dbConfigPath]) {
LOGGER.debug("Base's already loaded");
return true;
} else {
// TODO la base n'existe pas, on vérifie que le contenu de la conf n'est pas le même qu'une base déjà chargée.
Expand Down
33 changes: 31 additions & 2 deletions src/js/service/service.js
Original file line number Diff line number Diff line change
Expand Up @@ -882,6 +882,28 @@ module.exports = class Service {

}

/**
*
* @function
* @name disconnectSources
* @description Déconnecter toutes les sources du service
*
*/
async disconnectSources() {

LOGGER.info("Déonnexion des sources du service...");

// Connexion des sources
if (!(await this._sourceManager.disconnectAllSources())) {
LOGGER.fatal("Impossible de déconnecter toutes les sources du service");
return false;
} else {
LOGGER.info("Les sources du service potentiellement connectables ont été déconnectées");
return true;
}

}

/**
*
* @function
Expand Down Expand Up @@ -1027,13 +1049,20 @@ module.exports = class Service {
LOGGER.debug("Réception du signal SIGTERM pour arrêter le service");

if (await this.stopServers()) {
LOGGER.debug("Les serveurs sont bien arrêtés, on peut sortir du service (exit)")
process.exit(0);
LOGGER.debug("Les serveurs sont bien arrêtés");
} else {
LOGGER.fatal("Les serveurs ne se sont pas bien arrếtés");
process.exit(1);
}

if (await this.disconnectSources()) {
LOGGER.debug("Les sources sont bien déconnectées, on peut sortir du service (exit)");
process.exit(0);
} else {
LOGGER.fatal("Les sources ne se sont pas bien déconnectées");
process.exit(2);
}

});

}
Expand Down
9 changes: 8 additions & 1 deletion src/js/service/serviceInsider.js
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,14 @@ module.exports = class ServiceInsider extends ServiceAdministered {
LOGGER.debug("Arrêt d'un service dans le même processus");

if (await this._serviceInstance.stopServers()) {
LOGGER.debug("Service arrêté.");
LOGGER.debug("Servers arrêtés.");
} else {
LOGGER.error("Le service n'a pu être arrêté");
return false;
}

if (await this._serviceInstance.disconnectSources()) {
LOGGER.debug("Sources déconnectées.");
this._serviceInstance = null;
return true;
} else {
Expand Down
4 changes: 4 additions & 0 deletions src/js/sources/pgrSource.js
Original file line number Diff line number Diff line change
Expand Up @@ -140,8 +140,11 @@ module.exports = class pgrSource extends Source {
*/
async connect() {

LOGGER.debug("Connexion to the base asked from a pgrSource...");

if (!this._base.connected) {

LOGGER.debug("pgrSource need to connect itself to the base");
// Connection à la base de données
try {

Expand All @@ -157,6 +160,7 @@ module.exports = class pgrSource extends Source {

} else {
// Road2 est déjà connecté à la base
LOGGER.debug("pgrSource's already connected to the base");
this._connected = true;
}

Expand Down
1 change: 1 addition & 0 deletions src/js/sources/sourceManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -942,6 +942,7 @@ module.exports = class sourceManager {
return false;
} else {
base = this._baseManager.getBase(sourceJsonObject.storage.base.dbConfig);
LOGGER.debug("Récuperation de la base configurée dans : " + sourceJsonObject.storage.base.dbConfig);
}
// Création de la source
source = new pgrSource(sourceJsonObject, base);
Expand Down

0 comments on commit 93f19d3

Please sign in to comment.