fix: disable dynamic reload until spurious file change is identified
authorJérôme Benoit <jerome.benoit@sap.com>
Wed, 8 Nov 2023 15:18:19 +0000 (16:18 +0100)
committerJérôme Benoit <jerome.benoit@sap.com>
Wed, 8 Nov 2023 15:18:19 +0000 (16:18 +0100)
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
src/charging-station/Bootstrap.ts
src/charging-station/ChargingStation.ts
src/charging-station/IdTagsCache.ts
src/utils/Configuration.ts

index 0dbf95106afbd57d7ae2609b40d5084033f12437..465d5bf21f98b29d9d410914d6d0a0226f560ce9 100644 (file)
@@ -99,8 +99,7 @@ export class Bootstrap extends EventEmitter {
         performanceStorageConfiguration.uri!,
         this.logPrefix(),
       ));
-    // FIXME: Disabled until the spurious configuration file change detection on MacOS is identified
-    // Configuration.configurationChangeCallback = async () => Bootstrap.getInstance().restart(false);
+    Configuration.configurationChangeCallback = async () => Bootstrap.getInstance().restart(false);
   }
 
   public static getInstance(): Bootstrap {
index 996b9cf9fb6a83694c8b1fbf1eea80f7d9aed7b4..bd3fb81283b079f66ceed55b380434666c331613 100644 (file)
@@ -149,7 +149,7 @@ import {
   roundTo,
   secureRandom,
   sleep,
-  watchJsonFile,
+  // watchJsonFile,
 } from '../utils';
 
 export class ChargingStation {
@@ -664,44 +664,55 @@ export class ChargingStation {
         }
         this.openWSConnection();
         // Monitor charging station template file
-        this.templateFileWatcher = watchJsonFile(
-          this.templateFile,
-          FileType.ChargingStationTemplate,
-          this.logPrefix(),
-          undefined,
-          (event, filename): void => {
-            if (isNotEmptyString(filename) && event === 'change') {
-              try {
-                logger.debug(
-                  `${this.logPrefix()} ${FileType.ChargingStationTemplate} ${
-                    this.templateFile
-                  } file have changed, reload`,
-                );
-                this.sharedLRUCache.deleteChargingStationTemplate(this.templateFileHash);
-                // Initialize
-                this.initialize();
-                this.idTagsCache.deleteIdTags(getIdTagsFile(this.stationInfo)!);
-                // Restart the ATG
-                this.stopAutomaticTransactionGenerator().catch(() => {});
-                delete this.automaticTransactionGeneratorConfiguration;
-                if (this.getAutomaticTransactionGeneratorConfiguration()?.enable === true) {
-                  this.startAutomaticTransactionGenerator();
-                }
-                if (this.getEnableStatistics() === true) {
-                  this.performanceStatistics?.restart();
-                } else {
-                  this.performanceStatistics?.stop();
-                }
-                // FIXME?: restart heartbeat and WebSocket ping when their interval values have changed
-              } catch (error) {
-                logger.error(
-                  `${this.logPrefix()} ${FileType.ChargingStationTemplate} file monitoring error:`,
-                  error,
-                );
-              }
-            }
-          },
-        );
+        // FIXME: Disabled until the spurious configuration file change detection is identified
+        // this.templateFileWatcher = watchJsonFile(
+        //   this.templateFile,
+        //   FileType.ChargingStationTemplate,
+        //   this.logPrefix(),
+        //   undefined,
+        //   (event, filename): void => {
+        //     if (isNotEmptyString(filename) && event === 'change') {
+        //       try {
+        //         logger.debug(
+        //           `${this.logPrefix()} ${FileType.ChargingStationTemplate} ${
+        //             this.templateFile
+        //           } file have changed, reload`,
+        //         );
+        //         this.sharedLRUCache.deleteChargingStationTemplate(this.templateFileHash);
+        //         // Initialize
+        //         this.initialize();
+        //         this.idTagsCache.deleteIdTags(getIdTagsFile(this.stationInfo)!);
+        //         // Restart the ATG
+        //         this.stopAutomaticTransactionGenerator()
+        //           .then(() => {
+        //             delete this.automaticTransactionGeneratorConfiguration;
+        //             if (this.getAutomaticTransactionGeneratorConfiguration()?.enable === true) {
+        //               this.startAutomaticTransactionGenerator();
+        //             }
+        //           })
+        //           .catch((err) =>
+        //             logger.error(
+        //               `${this.logPrefix()} failed to stop ATG at ${
+        //                 FileType.ChargingStationTemplate
+        //               } reload`,
+        //               err,
+        //             ),
+        //           );
+        //         if (this.getEnableStatistics() === true) {
+        //           this.performanceStatistics?.restart();
+        //         } else {
+        //           this.performanceStatistics?.stop();
+        //         }
+        //         // FIXME?: restart heartbeat and WebSocket ping when their interval values have changed
+        //       } catch (error) {
+        //         logger.error(
+        //           `${this.logPrefix()} ${FileType.ChargingStationTemplate} file monitoring error:`,
+        //           error,
+        //         );
+        //       }
+        //     }
+        //   },
+        // );
         this.started = true;
         parentPort?.postMessage(buildStartedMessage(this));
         this.starting = false;
index 5e0ab0b8f0778c2fbf02333c579657387a5c1d5f..5c0a454a05d6615389de331d19b72832bd4724a4 100644 (file)
@@ -7,14 +7,14 @@ import {
   handleFileException,
   isNotEmptyString,
   logPrefix,
-  logger,
+  // logger,
   secureRandom,
-  watchJsonFile,
+  // watchJsonFile,
 } from '../utils';
 
 interface IdTagsCacheValueType {
   idTags: string[];
-  idTagsFileWatcher: FSWatcher | undefined;
+  idTagsFileWatcher?: FSWatcher | undefined;
 }
 
 export class IdTagsCache {
@@ -123,33 +123,34 @@ export class IdTagsCache {
   private setIdTagsCache(file: string, idTags: string[]) {
     return this.idTagsCaches.set(file, {
       idTags,
-      idTagsFileWatcher: watchJsonFile(
-        file,
-        FileType.Authorization,
-        this.logPrefix(file),
-        undefined,
-        (event, filename) => {
-          if (isNotEmptyString(filename) && event === 'change') {
-            try {
-              logger.debug(
-                `${this.logPrefix(file)} ${FileType.Authorization} file have changed, reload`,
-              );
-              this.deleteIdTagsCache(file);
-              this.deleteIdTagsCacheIndexes(file);
-            } catch (error) {
-              handleFileException(
-                file,
-                FileType.Authorization,
-                error as NodeJS.ErrnoException,
-                this.logPrefix(file),
-                {
-                  throwError: false,
-                },
-              );
-            }
-          }
-        },
-      ),
+      // FIXME: Disabled until the spurious configuration file change detection is identified
+      // idTagsFileWatcher: watchJsonFile(
+      //   file,
+      //   FileType.Authorization,
+      //   this.logPrefix(file),
+      //   undefined,
+      //   (event, filename) => {
+      //     if (isNotEmptyString(filename) && event === 'change') {
+      //       try {
+      //         logger.debug(
+      //           `${this.logPrefix(file)} ${FileType.Authorization} file have changed, reload`,
+      //         );
+      //         this.deleteIdTagsCache(file);
+      //         this.deleteIdTagsCacheIndexes(file);
+      //       } catch (error) {
+      //         handleFileException(
+      //           file,
+      //           FileType.Authorization,
+      //           error as NodeJS.ErrnoException,
+      //           this.logPrefix(file),
+      //           {
+      //             throwError: false,
+      //           },
+      //         );
+      //       }
+      //     }
+      //   },
+      // ),
     });
   }
 
index 1f370480d4d1b6fc47828792ccbf8271cfb81724..ebf99c55fbe793b3c69a02cf08c84bf7abf0989f 100644 (file)
@@ -529,9 +529,10 @@ export class Configuration {
         Configuration.configurationData = JSON.parse(
           readFileSync(Configuration.configurationFile, 'utf8'),
         ) as ConfigurationData;
-        if (!Configuration.configurationFileWatcher) {
-          Configuration.configurationFileWatcher = Configuration.getConfigurationFileWatcher();
-        }
+        // FIXME: Disabled until the spurious configuration file change detection is identified
+        // if (!Configuration.configurationFileWatcher) {
+        //   Configuration.configurationFileWatcher = Configuration.getConfigurationFileWatcher();
+        // }
       } catch (error) {
         Configuration.handleFileException(
           Configuration.configurationFile,