Browse Source

fix: compatibility layer for hubcmdui

dqzboy 5 months ago
parent
commit
107a6c1b0d
2 changed files with 5 additions and 34 deletions
  1. 3 17
      hubcmdui/compatibility-layer.js
  2. 2 17
      hubcmdui/routes/monitoring.js

+ 3 - 17
hubcmdui/compatibility-layer.js

@@ -51,23 +51,9 @@ module.exports = function(app) {
   app.get('/api/stopped-containers', async (req, res) => {
     try {
       logger.info('兼容层处理获取已停止容器请求');
-      const { exec } = require('child_process');
-      const util = require('util');
-      const execPromise = util.promisify(exec);
-      
-      const { stdout } = await execPromise('docker ps -f "status=exited" --format "{{.ID}}\\t{{.Names}}\\t{{.Image}}\\t{{.Status}}"');
-      
-      const containers = stdout.trim().split('\n')
-        .filter(line => line.trim())
-        .map(line => {
-          const [id, name, image, ...statusParts] = line.split('\t');
-          return {
-            id: id.substring(0, 12),
-            name,
-            image,
-            status: statusParts.join(' ')
-          };
-        });
+      const dockerService = require('./services/dockerService');
+      
+      const containers = await dockerService.getStoppedContainers();
       
       res.json(containers);
     } catch (err) {

+ 2 - 17
hubcmdui/routes/monitoring.js

@@ -163,23 +163,8 @@ router.post('/test-notification', requireLogin, async (req, res) => {
 // 获取已停止的容器
 router.get('/stopped-containers', async (req, res) => {
     try {
-        const { exec } = require('child_process');
-        const util = require('util');
-        const execPromise = util.promisify(exec);
-        
-        const { stdout } = await execPromise('docker ps -f "status=exited" --format "{{.ID}}\\t{{.Names}}\\t{{.Image}}\\t{{.Status}}"');
-        
-        const containers = stdout.trim().split('\n')
-            .filter(line => line.trim())
-            .map(line => {
-                const [id, name, image, ...statusParts] = line.split('\t');
-                return {
-                    id: id.substring(0, 12),
-                    name,
-                    image,
-                    status: statusParts.join(' ')
-                };
-            });
+        const dockerService = require('../services/dockerService');
+        const containers = await dockerService.getStoppedContainers();
         
         res.json(containers);
     } catch (err) {