Skip to content

Commit

Permalink
[fix] add disconnection of sources in sourceManager
Browse files Browse the repository at this point in the history
  • Loading branch information
jmkerloch committed Oct 18, 2023
1 parent 93f19d3 commit bc7903f
Show file tree
Hide file tree
Showing 2 changed files with 84 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/js/service/service.js
Original file line number Diff line number Diff line change
Expand Up @@ -898,7 +898,7 @@ module.exports = class Service {
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");
LOGGER.info("Les sources du service potentiellement déconnectables ont été déconnectées");
return true;
}

Expand Down
83 changes: 83 additions & 0 deletions src/js/sources/sourceManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -994,6 +994,33 @@ module.exports = class sourceManager {

}

/**
*
* @function
* @name disconnectSource
* @description Fonction utilisée pour déconnecter une source.
* @param {string} sourceId - Id de la source que l'on veut déconnecter
*
*/
async disconnectSource(sourceId) {

LOGGER.info("Déconnection de la source: " + sourceId);

try {

await this._sources[sourceId].disconnect();
LOGGER.info("Source déconnectee.");
return true;

} catch (err) {

LOGGER.error("Impossible de déconnecter la source.", err);
return false;

}

}

/**
*
* @function
Expand Down Expand Up @@ -1052,4 +1079,60 @@ module.exports = class sourceManager {

}

/**
*
* @function
* @name disconnectAllSources
* @description Déconnecter l'ensemble des sources disponibles dans le manager
*
*/
async disconnectAllSources() {

LOGGER.info("Déconnection de l'ensemble des sources...");

if (this._loadedSourceId.length === 0) {
LOGGER.warn("Aucune source n'est disponible");
return true;
}

try {
assert.deepStrictEqual(this._loadedSourceConfiguration, {});
LOGGER.error("Aucune source n'a été préalablement chargée");
return false;
} catch (err) {
// tout va bien
}

let nbSourceDisconnected = 0;

for (let i = 0; i < this._loadedSourceId.length; i++) {

LOGGER.info("Source : " + this._loadedSourceId[i]);

if (!(await this.disconnectSource(this._loadedSourceId[i]))) {

LOGGER.error("Source " + this._loadedSourceId[i] + " non déconnectée");
return false;

} else {

LOGGER.info("Source " + this._loadedSourceId[i] + " déconnectée");
nbSourceDisconnected++;

}

}

LOGGER.info("Les déconnections se sont bien déroulés.");

if (nbSourceDisconnected === 0) {
LOGGER.error("Aucune source n'a pu être déconnectée");
return false;
} else {
LOGGER.info("Au moins une source a été déconnectée");
return true;
}

}

}

0 comments on commit bc7903f

Please sign in to comment.