浏览代码

Daemon: avoid "ENOENT reduced.csv" when no reduced data available; Server: Handle no data;

Christian Kahlau 3 年之前
父节点
当前提交
2119fadefe
共有 4 个文件被更改,包括 14 次插入0 次删除
  1. 3 0
      daemon/install/install.sh
  2. 5 0
      daemon/src/collector.class.ts
  3. 3 0
      daemon/src/webserver.class.ts
  4. 3 0
      server/src/server-connector.class.ts

+ 3 - 0
daemon/install/install.sh

@@ -42,6 +42,9 @@ echo "[INSTALL] Transpiling typescript sources of daemon project"
 $EXC_NPM run build
 
 echo "[INSTALL] Installing daemon service application"
+if [ -d "$INSTALL_DIR/dist" ]; then
+  rm -rf "$INSTALL_DIR/dist"
+fi
 cp -rv "dist" "$INSTALL_DIR/"
 cp -v ".env.default" "$INSTALL_DIR/.env"
 cp -v "cpu.sh" "$INSTALL_DIR/"

+ 5 - 0
daemon/src/collector.class.ts

@@ -385,6 +385,11 @@ export class Collector {
         Logger.warn(`[WARN] Transaction rollback succeeded.`);
       }
 
+      if (!fs.existsSync(DATA_REDUCED_FILE)) {
+        // NO DATA
+        return null;
+      }
+
       const hdl = moment().unix();
       this.trx.file = path.resolve(DATA_DIR, `reduced.trx_${hdl.toFixed(0)}.csv`);
       await fsp.rename(DATA_REDUCED_FILE, this.trx.file);

+ 3 - 0
daemon/src/webserver.class.ts

@@ -14,6 +14,9 @@ export class Webserver {
     this.app.get('/', async (req, res, next) => {
       try {
         const hdl = await this.collector.trx.start();
+        if (!hdl) {
+          return res.send({ hdl: null, data: [] });
+        }
         const data = await this.collector.trx.read();
 
         res.send({

+ 3 - 0
server/src/server-connector.class.ts

@@ -40,6 +40,9 @@ export class ServerConnector {
       // Start Transaction, receiving Data and a Transaction Handle
       let response = await axios.get(`http://${server.fqdn}:8890/`, { responseType: 'json' });
       trxHdl = response.data.hdl;
+
+      if (!trxHdl) return; // No data
+
       const data: ReducedData[] = response.data.data.map(entry => ({ ...entry, time: new Date(entry.time) }));
 
       // Process data in DB